使用DOM HTML获取价值

时间:2013-02-22 18:06:45

标签: php dom

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

1 个答案:

答案 0 :(得分:1)

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

那就是说<td>曾是<table>的第一级孩子?您可以在getElementsByTagName上再次使用$table,这样做效果非常好。