通常,我会使用xpath来获取这样的表:
foreach($xpath->query('//*[@id="financial"]/div[4]/table/tr') as $row) {
echo '<tr>';
foreach($xpath->query('td[position() > 0]', $row) as $col) {
echo '<td>'.trim($col->textContent).'</td>'."\n"; }
echo '</tr>';
等
结果显示与当前表中的结果相同。
但是,我想从下往上显示结果。
有什么建议吗?
答案 0 :(得分:1)
这不是xpath问题。您无法使用xpath控制要返回的元素的顺序。
无论如何,DOMXPath::query
returns DOMNodeList
,您可以尝试向后迭代DOMNodeList
,如下所示:
$rows = $xpath->query('//*[@id="financial"]/div[4]/table/tr');
for($i=$rows->length-1; $i>=0; --$i){
$row = $result->item($i);
echo '<tr>';
foreach($xpath->query('td', $row) as $col) {
echo '<td>'.trim($col->textContent).'</td>'."\n";
}
echo '</tr>';
}
未来访问者参考的相关问题:Reversing order of items in DOMNodeList
旁注,[position() > 0]
没用。 xpath position()
从1
开始,因此谓词永远不会评估为false
。