
Ruby初心者です。
rexmlを用いてXMLを扱うことになったのですが、出力がうまくいきません。
XMLファイル
<hoge>
<item>
<name>○○○</name>
<data>・・・・・</data>
<data>・・・・・</data>
</item>
<item>
<name>○○○</name>
<data>・・・・・</data>
<data>・・・・・</data>
</item>
</hoge>
上記のようなXMLファイルから<name>と<data>を取り出して出力しようと思っています。
見よう見まねで以下のようなコードを書いたのですが、これだと複数ある<data>が1つしか取れませんでした。
xml = REXML::Document.new(open("・・・・"))
xml.elements.each("hoge/item") {|line|
puts line.elements["name"].text
puts line.elements["data"].text
}
※都合で簡単に書き直したものをテストせずに載せています
すべての<data>を出力したいのですが、どう書き直せばよいでしょうか?
ご教授願います。
No.1ベストアンサー
- 回答日時:
REXML::elements#[xpath] は、マッチする先頭のエレメントだけを返します。
REXML::elements#each(xpath) か、REXML::element#each_element(xpath) を使えばいいでしょう。xml.elements.each("hoge/item") do |line|
puts line.elements["name"].text
line.elements.each("data"){|datum| puts datum.text}
end
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C++ APIについて エラーコード...
-
FindFirst を複数条件で検索
-
実行時エラー 3020の対策
-
vbaでxmlからNodeListでデータ...
-
JSONで文字列が長い時
-
qq!!の意味を教えてください。
-
UWSCのSELECT文の記述方法
-
16進の10進変換について
-
SELECT要素の垂直位置
-
文字の横にプルダウンを表示さ...
-
CGIでのページ指定~その(2)
-
linq で 楽天ウェブサービスのX...
-
CGIやPHPで外部ファイルの内容...
-
数値かどうかの判定方法
-
CGIからメールに書き出しする際...
-
Pythonでリストの要素の順番を...
-
途中まで出来ているのですが‥(D...
-
Perlの日付の比較に関して
-
ホームページ上にある表に書き...
-
プルダウンリストの背景色の指定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Application.ScreenUpdating = ...
-
「*:*」って何を意味するのでし...
-
実行時エラー 3020の対策
-
ACCESS テキストボックスを隙...
-
vbaでxmlからNodeListでデータ...
-
FindFirst を複数条件で検索
-
VBAでPDFのコピーとリネームを...
-
構造体の各データの表示につい...
-
[python] 文字列を変数名として...
-
講義でわからないのですが以下...
-
構造体の変数の値を、動的に取...
-
C言語 当選者
-
vscode 文字化け
-
コンボボックスのtag情報の取得...
-
What could be kanji of the Ja...
-
【メモリ不足で落ちる(python)】
-
パイソンのクラスについて
-
python、継承を確認するための...
-
VBA他のブックから値のみ貼付す...
-
VB6のLSETをVB2005で実現するに...
おすすめ情報