3

重複の可能性:
SimpleXMLElement オブジェクト

こんにちは、XML ドキュメントを並べ替えたいと思います。次のようにします。

public function xsort(&$nodes, $child_name, $order=SORT_ASC)
{
    $sort_proxy = array();

    foreach($nodes as $k => $node) {
        $sort_proxy[$k] = (string) $node->$child_name;
    }

    array_multisort($sort_proxy, $order, $nodes);

}

そして、変数にソートされた配列を取得し$nodesます。コードでは、次のように使用されます。

$this->xsort($nodes, 'kategoria_6', SORT_DESC);

print_r($nodes); を実行すると ソートされたビューを取得します

SimpleXMLElement Object (
  [kategoria_6] => kat4 
  [opis_6] => opis4 
  [img] => slides/slide3.jpg
) 
SimpleXMLElement Object ( 
  [kategoria_6] => kat3 
  [opis_6] => opis3 
  [img] => slides/slide2.jpg 
) 
SimpleXMLElement Object ( 
  [kategoria_6] => kat2 
  [opis_6] => opis2 
  [img] => slides/slide1.jpg 
) 
SimpleXMLElement Object ( 
  [kategoria_6] => kat1 
  [opis_6] => opis1 
  [img] => slides/slide0.jpg 
) 
SimpleXMLElement Object ( 
  [kategoria_6] => kat1 
  [opis_6] => opis1 
  [img] => slides/slide4.jpg 
)

しかし、ファイルに保存したいときは、ソートされていません。ファイル保存コード:

$dom = new DOMDocument('1.0', 'utf-8');
foreach ($nodes as $element) {
    $dom = dom_import_simplexml($element)->ownerDocument;
}
$dom->save("c:\\aaa.xml");

ソートされていない理由を知っている人はいますか?

4

0 に答える 0