rubyでxmlを検索するとREXMLが出てくるが遅い。
そこでLibXMLに移植したがそのメモ。
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') |
http://nokogiri.org/