Ruby Nokogiri::XML::document规范化方法返回空字符串

Ruby Nokogiri::XML::document规范化方法返回空字符串,ruby,xml,nokogiri,canonicalization,c14n,Ruby,Xml,Nokogiri,Canonicalization,C14n,我想通过使用nokogiri获得一段xml的规范化版本,尽管它的规范化方法是以空字符串形式返回的 d= Nokogiri::XML::Document.new '<a><z></z><b c="d">e</b></a>' d.canonicalize #=> "" d=Nokogiri::XML::Document.new'e' d、 规范化#=>“” 有人知道我做错了什么吗?我使用的是Nokogiri 1.6.7

我想通过使用nokogiri获得一段xml的规范化版本,尽管它的规范化方法是以空字符串形式返回的

d= Nokogiri::XML::Document.new '<a><z></z><b c="d">e</b></a>'
d.canonicalize #=> ""
d=Nokogiri::XML::Document.new'e'
d、 规范化#=>“”
有人知道我做错了什么吗?我使用的是Nokogiri 1.6.7

实际上并没有解析文档。基本上,您只是创建了一个带有奇怪XML版本的空文档:

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

我不同意这个问题的解决方式。库没有提供正确的错误,并且最初的打字错误不是导致上述问题的原因。马特提供的答案是正确的,是有帮助的。结束这个问题是滥用节制。
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>"