我試過使用循環打印,但它不打印下一個元素。
請給我一個最好解釋的簡單例子。使用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