xPath - 从下到上

时间:2015-05-05 20:03:24

标签: php xpath

通常,我会使用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>';

结果显示与当前表中的结果相同。

但是,我想从下往上显示结果。

有什么建议吗?

1 个答案:

答案 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