Помощь Nokogiri и XPath

По общему признанию, я новичок из Nokogiri, и я должен что-то упустить ...

Я просто пытаюсь распечатать узел имени автора> из этого XML:

<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns:gd="http://schemas.google.com/g/2005" xmlns:docs="http://schemas.google.com/docs/2007" xmlns="http://www.w3.org/2005/Atom" gd:etag="">
  <category term="http://schemas.google.com/docs/2007#document" scheme="http://schemas.google.com/g/2005#kind"/>
  <author>
    <name>Matt</name>
    <email>Darby</email>
  </author>
  <title>Title</title>
</entry>

Я пытаюсь использовать это, но ничего не печатает. Кажется, ни один узел (даже '*') ничего не возвращает.

  Nokogiri::XML(@xml_string).xpath("//author/name").each do |node|
    puts node
  end
8
задан Matt Darby 25 August 2010 в 15:10
поделиться

1 ответ

По какой-то причине использование remove_namespaces! заставляет приведенный выше бит работать должным образом.

xml = Nokogiri::XML(@xml_string)
xml.remove_namespaces!
xml.xpath("//author/name").each do |node|
  puts node.text
end

=> "Matt"
7
ответ дан 5 December 2019 в 08:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: