1

我对 SimpleDOM 和 sortedXPath 的使用有一点问题。给出了以下 XML 结构。我想按行 ID、姓名或生日对其进行排序。

<table>
  <data>
    <row id="1">
      <column>Jimmy</column>
      <column>01/10/1977</column>
     </row>
     <row id="3">
       <column>Johnny</column>
       <column>04/01/2001</column>
     </row>
     <row id="2">
       <column>Tim</column>
       <column>13/02/1990</column>
     </row>
     <row id="4">
       <column>Paul</column>
       <column>13/02/1955</column>
     </row>
   </data>
</table>

通过使用以下方法,按 id 排序变得很简单:

foreach($xmlObject->data->sortedXPath('row','@id', SORT_DESC) as $node)

所以 $node 包含所有行,我可以按正确的顺序输出它们。但我无法按姓名或日期订购。我努力了:

foreach($xmlObject->data->sortedXPath('row','column[0]', SORT_DESC) as $node)
foreach($xmlObject->data->sortedXPath('row/column[0]','.', SORT_ASC) as $node)

但这会创建 $nodes 仅具有 column 的值并且以奇怪的顺序或根本没有输出。请帮助我现在被困在这里几个小时:(

问候

4

1 回答 1

1

XPath 从 1 开始计数。

foreach($xmlObject->data->sortedXPath('row','column[1]', SORT_DESC) as $node)
于 2011-06-04T16:21:35.910 回答