• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:XML::DOM / XML::XPathでソート)

XML::DOM / XML::XPathで効率的なソートの方法とは?

このQ&Aのポイント
  • XML::DOM / XML::XPathを使用して効率的なソートを行う方法について教えてください。
  • 現在作成したソート方法は動作するものの効率的ではなく、またソート項目が一意のデータである必要があります。
  • XML::DOMでハッシュを使用したソート方法は通用せず、別の良い方法があるのか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

use XML::DOM::XPath; my $xml = <<EOM; <?xml version="1.0" encoding="UTF-8" ?> <list> <item id="10">Apple</item> <item id="5">Orange</item> <item id="20">Melon</item> </list> EOM my $parser = XML::DOM::Parser->new(); my $doc = $parser->parse( $xml ); ## <item>タグの一覧を作成 my @list = $doc->findnodes('/list/item'); foreach my $node ( sort { $a->getAttribute('id') <=> $b->getAttribute('id') } @list){ print $node->getAttribute('id')."\n"; print $node->getFirstChild->getNodeValue."\n"; }

dany
質問者

お礼

あ! そうか…それぞれのオブジェクトがもう別物なのだから $a、$bをオブジェクトに置き換えればそのままですね。 ものすごく単純な見落としをしていました。 ありがとうございます!!