我试过使用循环打印,但它不打印下一个元素。
请给我一个最好解释的简单例子。使用PHP DOM
其次我可以得到一些有第id
第X个元素。如何通过标识获取所有元素PHP DOM
更新
感谢。创建元素时出现错误id
因此将其更改为class
(抱歉是编程的新手,感谢提升我)。所以你可以让我知道如何提取所有具有相同类名的元素,其次我可以从具有该类名的文档中获取一些第X个元素。
我试过使用循环打印,但它不打印下一个元素。
请给我一个最好解释的简单例子。使用PHP DOM
其次我可以得到一些有第id
第X个元素。如何通过标识获取所有元素PHP DOM
更新
感谢。创建元素时出现错误id
因此将其更改为class
(抱歉是编程的新手,感谢提升我)。所以你可以让我知道如何提取所有具有相同类名的元素,其次我可以从具有该类名的文档中获取一些第X个元素。
参考此链接
U可以使用此
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;
}
$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]');
谢谢。但它们都没有返回任何东西 – krishna 2012-02-28 07:55:20
如果您有与HTML相同id
两个或两个以上的元素,您会收到错误是这样的:
警告:DOMDocument :: loadHTML()[domdocument.loadhtml]:ID myid 已在En中定义tity
因为不能有多个元素与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::getElementsByTagName
或XPath
在具有给定ID的文档中不能有多个元素。 – lonesomeday 2012-02-28 07:01:25
我想用'id'返回所有div元素 – krishna 2012-02-28 07:10:22
ID值在文档中必须是唯一的。没有DOM库会给你getElementById()中的多个元素 - 名称中的线索:-) – 2012-02-28 08:39:17