Как получить элемент Node из Nokogiri :: XML :: Reader? - PullRequest
4 голосов
/ 16 марта 2011

В документации указано, что вы можете перебирать узлы с помощью .each, и узел будет возвращен в блок.Однако это не так.Возвращаемый «узел» - это всего лишь экземпляр Reader.

Мне нужно получить объект Node, чтобы я мог получить доступ к:

node.content

Однако это выглядит плоходокументированы.Во всяком случае, я не могу понять, как сделать что-то настолько простое после 2 часов попыток.Любая помощь приветствуется.

1 Ответ

2 голосов
/ 16 марта 2011

Вы ищете что-то подобное?

require 'nokogiri'

xml = <<eoxml
<x xmlns:tenderlove='http://tenderlovemaking.com/'>
<tenderlove:foo awesome='true'>snuggles!</tenderlove:foo>
<truth>echo chamber</truth>
</x>
eoxml

doc = Nokogiri::XML::Reader(xml)

doc.each do |node|
  if node.attributes == {"awesome"=>"true"}
    puts node.inner_xml
  end
end

# => snuggles!
...