08/06/29 03:14:44
<person id="111"/> <-- ここの / はミスだよね?
doc = REXML::Document.new(...)
id = 111
path = %q|/root/person[@id='%d']|
doc.elements[path % id].each do |node|
next unless node.is_a? REXML::Element
next unless node.name == 'entry'
puts node
end
もっと簡単に書けそうだが。
Hpricotだとこんな感じか。
doc = Hpricot.XML(...)
id = 111
puts (doc / :person).find {|psn| psn[:id] == id.to_s } / :entry