我尝试使用 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 的数量)。
可能出了什么问题?有人能解释一下吗?
最佳答案
使用这个:
$tds = $xpath->query('//table[@id="akas"]/*/td');
foreach($tds as $td) {
...
}
关于php - 使用 loadHTML 和 DOMXPath 获取 td 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18811901/