我想获取HTML页面中第九个td
元素的所有table
。
我从这开始,但我不知道如何完成它:
define('GLPI_ROOT', '..');
$content = GLPI_ROOT . "/front/yourpage.html";
$dom = new DOMDocument();
@$dom->loadHTML($content);
$xpath = new DOMXPath($dom);
$attbs = $xpath->query("//table td");
foreach($attbs as $a) {
print $a->nodeValue;
}
我也试过这个,但它不起作用:
$dom = new DOMDocument();
$dom->loadHTMLFile("yourpage.html");
$tables = $dom->getElementsByTagName('table');
$table = $tables->item(8);
foreach ($table->childNodes as $td) {
if ($td->nodeName == 'td') {
echo $td->nodeValue, "\n";
echo "<script type=\"text/javascript\"> alert('".$td->nodeValue."');</script>";
}
}
我收到了这个错误:
Warning: DOMDocument::loadHTMLFile(): htmlParseEntityRef: expecting ';' in yourpage.html, line: 33
答案 0 :(得分:1)
你的第一个不起作用,因为你似乎不了解XPath是如何工作的,但你的第二个可能是更好的选择。
那就是说<td>
曾是<table>
的第一级孩子?您可以在getElementsByTagName
上再次使用$table
,这样做效果非常好。