rexml, который идет, ruh сделает то, что вы хотите:
библиотеку Ruby можно использовать для выбораатрибут используя XPath, и использовать его в качестве отправной точки для других запросов XPath.
Пример:
<root>
<add key="A" value="B" />
<add key="C" value="D" />
<add foo="E" bar="F" />
</root>
Желаемый код:
get_pair "//*/@key", "../@value"
get_pair "//*/@foo", "../@bar"
Ожидаемый результат:
"A" "B"
"C" "D"
"E" "F"
Псевдо реализация:
def get_pair(key, value)
xml_doc.select[key].each do |a|
puts [a, a.select[value]]
end
end