我正在解析一个外部html(http://www.amazon.com/Toshiba-Satellite-C55-A5245-15-6-Inch-Horizon/dp/B00D78PZE8/ref=lp_9277875011_1_1?s=pc&ie=UTF8&qid=1400886357&sr=1-1),其中我有一个这样的元素:
<span id="priceblock_ourprice" class="a-size-medium a-color-price">$429.99</span>
和一个带有以下代码的php:
$dom = new DOMDocument;
libxml_use_internal_errors(TRUE);
$dom->loadHTMLFile($url);
libxml_clear_errors();
$links = $dom->getElementsById('priceblock_ourprice');
foreach ($links as $link ) {
echo "- ".$link->nodeValue."<br>";
}
但我收到以下错误:
Fatal error: Call to undefined method DOMDocument::getElementsById()
任何人都可以告诉我我做错了什么?
谢谢!
答案 0 :(得分:3)
getElementsById()
不是DOMDocument
的方法,您应该尝试getElementById()
。我甚至不认为两个元素可以具有相同的ID,因此您无法获得基于id的集合(数组)。
答案 1 :(得分:1)
好的,所以我不太明白这一点,似乎Firefox中的Firebug向我显示了错误的ID,我使用下面的代码来获取不同跨度的ID,而右边的ID是:
$dom = new DOMDocument();
libxml_use_internal_errors(TRUE);
$dom->loadHTMLFile($url);
libxml_clear_errors();
$nodes = $dom->getElementsByTagName('span');
foreach($nodes as $node) {
echo $node->getAttribute('id'). '->'.$node->textContent.'<br>';
}
它返回了我正在寻找的字段的不同ID,我想我在某个时候有一些错误,真的很抱歉等你的时间。