Nokogiri::XML::document 规范化方法 returns 空字符串

Nokogiri::XML::document canonicalize method returns empty string

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

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

有人知道我做错了什么吗?我正在使用 Nokogiri 1.6.7

Document::new 实际上并没有解析文档。您基本上只是在创建一个相当奇怪的 XML 版本的空文档:

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

改为使用 Document::parse, or the 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>"