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