• ベストアンサー

XMLからデータを抽出するとき100件目でループを解除したい

下記のようなwhile文で、 <database>が100件を超えたら、ループを解除して、 100件以上は表示できない旨を表示したいのですが、 簡単にできるでしょうか。 (xmlのデータ元に件数をリクエストすることができない仕様のため) while( %main::database = xml_contents( ($temp::xml =~ /<database>(.+?)<\/database>/sg ? $1 : ""), @database_attributes ) ) 素人な質問ですみません。 よろしくお願いいたします。

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

  • ベストアンサー
  • bgbg
  • ベストアンサー率53% (94/175)
回答No.1

ツッコミ所はいろいろありますが… ・なぜwhileの条件式にXMLの読み込み(と思われる)処理を書いているのですか? ・xml_contents という関数の詳細がわかりません。検索しても見つかりませんでした。  どんなモジュールをuseしていますか? ・xml_contents の戻り値は本当にハッシュですか? ・whileで100件読み込むなら、読み込んだノード数を記憶しておき100になったらループを抜けるようにするだけです。 my $count = 0; while( $count < 100 ){ # XML読み込み処理 $count++; } xml_contentsが1ノードずつ読み込む仕様でないとダメですが。 とりあえず、僕がこのようなソースの提出を受けたら、「一から作り直せ」と言う外ないです。

kuzumiHK
質問者

お礼

お返事ありがとうございます。 確かにおっしゃるとおりですね…。 もう少し全般を出せるようになってから もう一度質問させていただきたいと思います。 ありがとうございました。

関連するQ&A