如何通过id PHP DOM获取所有元素

如何通过id PHP DOM获取所有元素,php,dom,domdocument,getelementbyid,Php,Dom,Domdocument,Getelementbyid,我尝试使用循环打印,但它无法打印下一个元素。 请给我一个简单的例子,最好的解释。使用PHP DOM 其次,我可以得到一些具有id的第x个元素 更新 谢谢。我在创建具有相同id的元素时出错,因此将其更改为class(很抱歉,我是编程新手,感谢您的帮助)。那么,你能告诉我如何提取所有元素,那些具有相同类名的元素,然后我能从具有该类名的文档中获取一些第x个元素吗 使用 $html=file\u get\u html('index.php'); //查找所有图像 foreach($html->find(

我尝试使用循环打印,但它无法打印下一个元素。
请给我一个简单的例子,最好的解释。使用PHP DOM
其次,我可以得到一些具有
id
的第x个元素

更新

谢谢。我在创建具有相同
id
的元素时出错,因此将其更改为
class
(很抱歉,我是编程新手,感谢您的帮助)。那么,你能告诉我如何提取所有元素,那些具有相同类名的元素,然后我能从具有该类名的文档中获取一些第x个元素吗

使用

$html=file\u get\u html('index.php');
//查找所有图像
foreach($html->find('div')作为$element)
echo$element->id.
或特定部门

// Find all <div> which attribute id=foo
$ret = $html->find('div[id=foo]'); 
//查找所有属性id=foo的
$ret=$html->find('div[id=foo]');

如果在HTML中有两个或多个元素具有相同的
id
,您将收到如下错误:

警告:DOMDocument::loadHTML()[DOMDocument.loadHTML]:ID myid 已在实体中定义

因为不能有多个元素具有相同的
id
。如果您只有一个:

$dom = new DOMDocument();
$dom->loadHTML('
    <html>
        <body>
            <div></div>
            <div></div>
            <div id="myid">myid1</div>
        </body>
    </html>
');

$element = $dom->getElementById('myid');
echo $element->nodeValue."<br>";
$dom=newdomdocument();
$dom->loadHTML('
myid1
');
$element=$dom->getElementById('myid');
echo$element->nodeValue。“
”;
此外,您还可以使用或参考此链接

你可以使用这个


或者这个

for ($i = 0; $i < $nodeList->length; ++$i) {
    $nodeName = $nodeList->item($i)->nodeName;
    $nodeValue = $nodeList->item($i)->nodeValue;
}
for($i=0;$i<$nodeList->length;+$i){
$nodeName=$nodeList->item($i)->nodeName;
$nodeValue=$nodeList->item($i)->nodeValue;
}

一个文档中不能有多个ID为的元素。我想返回所有ID为的div元素。ID值在文档中必须是唯一的。没有DOM库会从getElementById()中为您提供多个元素-线索在名称:-)中,ID是唯一的。多个元素具有相同的ID是一种不好的做法。任何提取所有类元素的方法,如
getElementById()
谢谢。但它们都没有返回任何东西
$node = $parentnode->firstChild;
 do {
// do something
} while ($node = $node->nextSibling);
for ($i = 0; $i < $nodeList->length; ++$i) {
    $nodeName = $nodeList->item($i)->nodeName;
    $nodeValue = $nodeList->item($i)->nodeValue;
}