我尝试使用循环打印,但它不打印下一个元素
请给我一个简单的例子,它解释得最好。使用PHP DOM
其次,我可以得到一个具有id
的第X个元素。
更新
感谢。我在创建具有相同id
的元素时遇到错误,因此将其更改为class
(抱歉是编程的新手,感谢提升我)。所以,请您告诉我如何提取具有相同类名的所有元素。其次,我可以从具有该类名的文档中获取一些Xth元素。
答案 0 :(得分:5)
如果您在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>";
答案 1 :(得分:2)
$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]');
答案 2 :(得分:0)
参考此链接
你可以使用这个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;
}