Учитывая XMLRuby: Как найти элемент дочернего элемента XML из определенного элемента с помощью xpath?
<a>
<b key=1>
<c value=xxx />
</b>
<b key=2>
<c value=yyy />
</b>
</a>
Цель: Получить каждый «б», а затем получить «с» при этом «Ъ», как результат ниже. С XPath для поиска ребенка.
for <b key=1>
<c value=xxx />
for <b key=2>
<c value=xxx />
но ниже код
b_elements = XPath.match(xml, "//b[@key]")
b_elements.each do |b_element|
puts b_element.elements["//c"]
end
приведет к yeilding
for <b key=1>
<c value=xxx />
<c value=yyy />
for <b key=2>
<c value=xxx />
<c value=yyy />
вместо того, чтобы просто получать "с" каждого "б"
Я попытался ниже метод но не повезло, кажется, что , если использовать Xpath, он будет автоматически искать из корневого элемента Мент
b.get_elements("//c")
XPath.first(b, "//c")
Мой обходной путь теперь траверс дочерний элемент 1 слой в то время, и поиск нужной клавиши, которая, кажется, довольно глупо по сравнению с использованием XPath. Пожалуйста, посоветуйте, спасибо:)
он работает при помощи ".//c", спасибо –