2016-08-22 8 views
1

Ich wollte eine kanonische Version eines Stücks von XML mit Nokogiri erhalten, obwohl seine canonicalize -Methode zurückgegeben wird in einer leeren Zeichenfolge.Nokogiri :: XML :: Dokument canonicalize Methode gibt leere Zeichenfolge

d= Nokogiri::XML::Document.new '<a><z></z><b c="d">e</b></a>' 
d.canonicalize #=> "" 

Weiß jemand, was mache ich falsch? Ich benutze Nokogiri 1.6.7

+1

ich mit der Art und Weise nicht einverstanden, diese Frage wurde geschlossen. Die Bibliothek liefert keinen korrekten Fehler und der ursprüngliche Tippfehler war nicht die Ursache für das erwähnte Problem. Die Antwort matt ist korrekt und hilfreich. Diese Frage zu schließen, war eine mißbräuchliche Mäßigung. –

Antwort

1

Document::new nicht tatsächlich das Dokument analysieren. Sie sind im Grunde nur ein leeres Dokument mit einer ziemlich ungeradeen XML-Version zu erstellen:

d.to_xml 
#=> "<?xml version='<a><z></z><b c=\"d\">e</b></a>'?>\n" 

Statt Document::parse verwenden oder die XML() method on the Nokogiri module:

d = Nokogiri::XML::Document.parse '<a><z></z><b c="d">e</b></a>' 
d.canonicalize #=> "<a><z></z><b c=\"d\">e</b></a>" 
Verwandte Themen