我知道有类似的问题,但是,尝试学习PHP我遇到了这个错误,我想知道为什么会这样。
<?php
$url = 'http://aice.anie.it/quotazione-lme-rame/';
echo "hello!\r\n";
$html = new DOMDocument();
@$html->loadHTML($url);
$xpath = new DOMXPath($html);
$nodelist = $xpath->query(".//*[@id='table33']/tbody/tr[2]/td[3]/b");
foreach ($nodelist as $n) {
echo $n->nodeValue . "\n";
}
?>
这打印只是&#34;你好!&#34;。我想打印用xpath提取的值,但最后一个echo不做任何事情。
答案 0 :(得分:3)
您的代码中存在一些错误:
您尝试从网址http://aice.anie.it/quotazione-lme-rame/获取该表,但它实际位于位于http://www.aiceweb.it/it/frame_rame.asp的iframe中,因此请直接获取iframe网址。
您使用loadHTML()函数,它会加载 HTML字符串。你需要的是loadHTMLFile函数,它将HTML文档的链接作为参数(参见http://www.php.net/manual/fr/domdocument.loadhtmlfile.php)
您认为页面上有 tbody 元素,但没有人。因此,请从查询过滤器中删除它。
工作代码:
$url = 'http://www.aiceweb.it/it/frame_rame.asp';
echo "hello!\r\n";
$html = new DOMDocument();
@$html->loadHTMLFile($url);
$xpath = new DOMXPath($html);
$nodelist = $xpath->query(".//*[@id='table33']/tr[2]/td[3]/b");
foreach ($nodelist as $n) {
echo $n->nodeValue . "\n";
}