-
- (質問者)
- 投稿時間:2009/07/01 13:02
Ruby で REXML ライブラリを使って、 <hoge> タグ内の <fuga> タグで囲まれた要素をすべて取り出したいのですが、 何かいい方法はありますか? 他のライブラリを使ってもかまいません。
- 回答数 (3)
- クリップ数 (0)
- アクセス数 (1416)
- 回答
試してみてくださいコピペする ブログに貼るrequire 'rexml/document' doc = REXML::Document.new File.new('test.xml') doc.elements('*/hoge/fuga') { |element| puts element.inspect }
-
- tamanecoplus
- 972ポイント
- 2009/07/01 16:05
XMLのサイズが巨大な場合はストリームパーサーを。参考: http://www.nslabs.jp/ruby-rexml.rhtml http://d.hatena.ne.jp/winebarrel/20070607/p3コピペする ブログに貼るrequire "rexml/parsers/pullparser" File.open("source.xml") do |io| tags = [] parser = REXML::Parsers::PullParser.new(io) while parser.has_next? ev = parser.pull case ev.event_type when :start_element tags << ev[0].to_sym when :end_element raise "not well-formed" if tags.pop != ev[0].to_sym when :text if tags[-2] == :hoge && tags[-1] == :fuga puts ev[0] end end end end
-
- (質問者)
- 2009/07/07 22:10
smile2525 さん tamanecoplus さん ありがとうございました. 参考にさせていただきます.
1
回答
7
回答
7
回答
2
回答
3
回答
(2009/03/30 12:08)
by xuseo
3
回答
1
回答
(2009/05/28 00:17)
- 0クリップ
- 2031アクセス
- プログラミング / 開発言語 / JavaScript
3
回答
(2009/04/24 17:53)
by toyna


