2

我想获取 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
4

1 回答 1

1

您的第一个不起作用,因为您似乎不了解 XPath 的工作原理,但您的第二个可能是更好的选择。

也就是说,什么<td>时候是一级孩子<table>?您可以getElementsByTagName在 上再次使用$table,效果很好。

于 2013-02-22T18:11:56.457 回答