2014-04-23 6 views
5

Mit Nokogiri möchte ich den Namen des Wurzelelements bestimmen.Wie bekomme ich den Root-Element-Namen eines XML-Dokuments mit Nokogiri?

Ich dachte, dass eine XPath-Abfrage für / würde den Trick tun, aber anscheinend ist dieser Knotenname "Dokument"?

require 'nokogiri' 
doc = Nokogiri::XML('<foo>Hello</foo>') 
doc.xpath('/').first.name # => "document" 
doc.xpath('/foo').first.name # => "foo" 

Wie kann ich die Zeichenfolge "foo" für den Namen des Stammknotens erhalten, ohne es vorher zu kennen?

Antwort

8

/* sollte funktionieren:

require 'nokogiri' 
doc = Nokogiri::XML('<foo>Hello</foo>') 

doc.xpath('/*').first.name 
#=> "foo" 

oder mit Nokogiri::XML::Document#root:

doc.root.name 
#=> "foo" 
Verwandte Themen