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


how to get all elements by id PHP DOM

我尝试过使用循环打印,但它没有打印下一个元素
请给我一个最能说明问题的简单例子。使用PHP DOM
其次,我可以得到一些具有id的第X个元素。

更新

谢谢。我在创建具有相同id的元素时出错,所以将其更改为class(对不起,我是编程新手,谢谢你让我振作起来)。所以你能告诉我如何提取所有具有相同类名的元素吗?其次,我能从具有该类名的文档中获得一些第X个元素吗。

如果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>";

此外,您还可以使用DOMDocument::getElementsByTagNameXPath

使用简单HTML DOM解析器

$html = file_get_html('index.php');
// Find all images
foreach($html->find('div') as $element)
   echo $element->id. '<br>';

或特定div

// Find all <div> which attribute id=foo
$ret = $html->find('div[id=foo]'); 

请参阅此链接

您可以使用此
http://uk.php.net/manual/en/domnodelist.item.php

$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;
}