【问题标题】:Nokogiri::XML::document canonicalize method returns empty stringNokogiri::XML::document canonicalize 方法返回空字符串
【发布时间】:2016-08-22 14:17:42
【问题描述】:

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

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

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

【问题讨论】:

  • 我不同意这个问题的结束方式。该库未提供正确的错误,并且原始错字不是上述问题的原因。马特提供的答案是正确的,很有帮助。结束这个问题是滥用节制。

标签: ruby xml nokogiri canonicalization c14n


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-05-04
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多