require 'rexml/document'
xml = REXML::Document.new(open("foo.xml"))
nodes = xml.get_elements("/foo/bar/")
nodes.each{|a| puts a.text}
- 読み込み
xml = REXML::Document.new(io) xml = REXML::Document.new(string)
- ノード検索
nodes = xml.get_elements(xpath) # xpathによる検索 node = xml.elements[xpath] # 最初の要素を取得 nodes = node.get_elements(xpath) # サブツリー以下を検索
- ノード情報
tag = node.name # 名前(タグ名など?) href = node.attributes['href'] # attribute
- ノード生成
- 備考
- 整形する場合
- 備考
formatter = REXML::Formatters::Pretty.new puts formatter.write(xml.root,"")
- 色々勝手にテキストを変えられてしまうので、テキストを保存したい場合は継承して使う
class MyPretty < REXML::Formatters::Pretty
def wrap_text(node, output)
output << node.to_s
end
end