2016-10-18 10 views
2

Мой XML содержит несколько операторов, какКак получить значение атрибута nokogiri?

<House name="bla"><Room id="bla" name="black" ><blah id="blue" name="brown"></blah></Room></House> 

Мне нужно получить все значения для данного ключевого слова.

Я использовал nodes = doc.css("[name]") получить <Room id="bla" name="black" ><blah id="blue" name="brown"></blah></Room>. \

Но как я могу получить значение для ключа от этого. Есть ли более простой способ сделать это?

+0

_ «Что мне нужно, чтобы получить значение черного» _ - на основе чего? Не могли бы вы описать свои требования, не используя слово «черный»? – Stefan

+0

@Stefan: изменен – InQusitive

ответ

2
node_names = doc.css("[name]").map { |node| node['name'] } 

для всех имен узлов; или только для «черных»,

black = doc.at_css("[name]")['name'] 
+0

Вторая строка дает только первое появление. Не могли бы вы также добавить это утверждение, если это правда. – InQusitive

+0

Да, вопрос был неясен относительно того, какой из них вы хотели. – Amadan

+0

Что делать, если мне нужно получить данные только в том случае, если еще один атрибут на одном уровне содержит определенное значение. . Мне нужно значение имени, только если параметр синий. – InQusitive

Смежные вопросы