使用loadHTML和DOMXPath获取td值

时间:2013-09-15 11:32:48

标签: php html-table domdocument domxpath

我正在尝试使用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的数量)。

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

2 个答案:

答案 0 :(得分:1)

使用此:

$tds = $xpath->query('//table[@id="akas"]/*/td');
foreach($tds as $td) {
    ... 
}

答案 1 :(得分:0)

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

Thansk无论如何都要求你帮助hek2mgl。