我正在使用Xpath解析一些表数据,并且需要回显标题行以及包含特定数据的任何行。我可以成功选择我想要的但不确定输出整个行的语法,包括html tr和th标签。
这是我的代码。我不知道如何简化所选行的详细输出。我尝试了注释掉的行,但它剥离了标签。
它类似于这个问题:XPath in PHP Removes HTML Tags但我不明白答案。
$xpath = new DOMXPath($doc);
$rows = $xpath->query('//table//tr'); // extract rows from html
echo '<table>';
$first = true;
foreach ($rows as $row) { // process each row of results
if ($first) { // echo header row
echo '<tr><td>'.$td->item(0)->textContent.'</td><td>'.$td->item(1)->textContent.'</td><td>'.$td->item(2)->textContent.
'</td><td>'.$td->item(3)->textContent.'</td><td>'.$td->item(4)->textContent.'</td><td>'.$td->item(5)->textContent.
'</td><td>'.$td->item(6)->textContent.'</td><td>'.$td->item(7)->textContent.'</td></tr>';
$first = false;
}
else {
$td = $xpath->query('td', $row);
$firstnm = trim(strtok($td->item(1)->textContent," "));
$mmyyyy = substr($td->item(3)->textContent,2,7);
if ($firstnm == $firstname && $mmyyyy == $thismth)
echo '<tr><td>'.$td->item(0)->textContent.'</td><td>'.$td->item(1)->textContent.'</td><td>'.$td->item(2)->textContent.
'</td><td>'.$td->item(3)->textContent.'</td><td>'.$td->item(4)->textContent.'</td><td>'.$td->item(5)->textContent.
'</td><td>'.$td->item(6)->textContent.'</td><td>'.$td->item(7)->textContent.'</td></tr>';
// THIS STRIPS THE TAGS echo $row->nodeValue;
}
}
}
echo '</table>';