我正在尝试使用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的数量)。
可能有什么不对?任何人都可以对此有所了解吗?
答案 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。