2

我正在尝试使用 loadHTML 和 DOMXPath 从表中获取 td 值,但即使没有错误,节点在“textContent”和“nodeValue”上总是返回空。

表 id 是“akas”,但表内没有其他任何东西有 id 或类。

这是我的代码:

$xml = new DomDocument();
$xml->validateOnParse = true;
libxml_use_internal_errors(true);
$xml->loadHTML($data); //$data contains all the HTML

$xpath = new DOMXPath($xml);
$table = $xpath->query('//table[@id="akas"]')->item(0);

$rows = $table->getElementsByTagName("tr");

foreach($rows as $row)
{
  $cells = $row -> getElementsByTagName('td');
  foreach ($cells as $cell) print $cell->nodeValue;
}

没有错误,但我无法从节点获取任何内容,如果我执行 var_dump,每个属性都返回空,[tagName] 和 [nodeName] 除外。表的“长度”返回正确的值(内部 tr 和/或 td 的数量)。

有什么问题?任何人都可以对此有所了解吗?

4

2 回答 2

2

用这个:

$tds = $xpath->query('//table[@id="akas"]/*/td');
foreach($tds as $td) {
    ... 
}
于 2013-09-15T11:40:09.967 回答
0

我忘记在 curl 代码上打开 CURLOPT_RETURNTRANSFER 来获取 html,所以如果我做了一个 $data 的 var_dump ,那么 html 就在那里,但是如果我试图对内容做任何事情,它总是会返回空的。:P

无论如何,感谢您的帮助hek2mgl。

于 2013-09-26T09:48:33.037 回答