php - 使用 loadHTML 和 DOMXPath 获取 td 值

标签 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 的数量)。

可能出了什么问题?有人能解释一下吗?

最佳答案

使用这个:

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

关于php - 使用 loadHTML 和 DOMXPath 获取 td 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18811901/

相关文章:

php - Sendgrid - SMTP 还是 CURL?

css - 不尊重 Outlook 2013 表格边框

javascript - 单击更改下一个 TD 表

javascript - 如何防止 execCommand ('SaveAs' 打开新选项卡或窗口

JavaScript 中的 PHP 值

php - 如何使用perl、php获取图片元数据

Php:我怎样才能从字符串中删除任何字符或整个字符串,不包括引号之间的字符?

jquery - 如果一行中只有一个可见的表格单元格,如何动态添加 .attr ('colspan' , '100' )?

php - XML DOM文档优化

php - 信封': No matching global declaration available for the validation root error when validating SOAP response in php