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 を列の値だけで奇妙な順序で作成するか、まったく出力しません。ここで何時間も立ち往生しているのを助けてください:(

よろしく

4

1 に答える 1

1

XPath は 1 から数えます。

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