中野智文

中野智文(VOYAGE GROUP)のコンピュータなどのメモ

ruby rexmlから高速なlibxmlへ乗り換え

2013-12-05 13:54:42 | ruby
rubyでxmlを検索するとREXMLが出てくるが遅い。 そこでLibXMLに移植したがそのメモ。
移植のためのコードレベルの対応表。
処理内容 REXML LibXML
ライブラリ読み込み require 'rexml/document' require 'libxml'
include LibXML
初期化(文字列) doc = REXML::Document.new(xml) doc = XML::Document.string(xml)
イテレーション doc.elements.each('//item') do |node|
 ...
end
doc.find('//item').each do |node|
 ...
end
テキスト参照 node.text node.content
属性参照 node.attributes['name'] node.attributes['name']
最初のnode検索 REXML::XPath.first(doc, "//item") doc.find_first('//item')
LibXMLだからってコードが煩雑になるわけではなく、むしろシンプル。

最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
Nokogiri (乳牛)
2013-12-07 12:22:41
これもいいよ
http://nokogiri.org/
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。