在PHP中按以字符串开头的标记名获取元素

在PHP中按以字符串开头的标记名获取元素,php,html,dom,Php,Html,Dom,我需要获取PHP中以某个字符串开头的所有标记元素,类似如下: $dom=newdomdocument(); $dom->loadHTML($content); $domPre=$dom->getElementsByTagName('spx-'); $length=$domPre->length; 返回json_encode($length); 当然,上述措施不起作用。任何指向正确方向的指针都将不胜感激,谢谢 按照这些建议,这对我来说很有效: $dom=newdomdocument(); $do

我需要获取PHP中以某个字符串开头的所有标记元素,类似如下:

$dom=newdomdocument();
$dom->loadHTML($content);
$domPre=$dom->getElementsByTagName('spx-');
$length=$domPre->length;
返回json_encode($length);

当然,上述措施不起作用。任何指向正确方向的指针都将不胜感激,谢谢

按照这些建议,这对我来说很有效:

$dom=newdomdocument();
$dom->loadHTML($content);
$xp=新的DOMXPath($dom);
$array=[];
foreach($xp->query(“//*[包含(local-name(),'spx')]”)作为$node){
数组推送($array,$dom->saveXML($node),“\n”);
}
返回json_encode(count($array));

发现此问题并尝试了它,但只返回null。请显示一个HTML的小示例。如果没有它,我们就无法复制它,也不知道您在做什么。使用XPath-。
开头会更好XPath->query返回节点列表对象。使用$nodeList->length,您可以获得元素的数量。要获得一个doElement数组,您只需使用迭代器到数组($nodeList)。