【问题标题】:Can Nokogiri retain attribute quoting style?Nokogiri 可以保留属性引用样式吗?
【发布时间】:2011-12-08 00:59:27
【问题描述】:

这是我文件的内容(注意嵌套引号):

<?xml version="1.0" encoding="utf-8"?>
        <property name="eventData" value='{"key":"value"}'/>

在 Ruby 中我有:

file = File.read(settings.test_file)      
@xml = Nokogiri::XML( file)
puts "@xml  " + @xml.to_s

这是输出:

<property name="eventData" value="{&quot;key&quot;:&quot;value&quot;}"/>

有没有办法对其进行转换,以便输出准确地保留引号?即外单,内双?

【问题讨论】:

    标签: ruby nokogiri quotes


    【解决方案1】:

    不,它不能。 Nokogiri::XML::Attr(也没有 libxml2 中的底层数据结构)中没有存储关于(或应该)使用哪种类型的引号来分隔属性的信息。因此,所有序列化(由 libxml2 完成)使用相同的属性引用样式。

    实际上,这些信息甚至没有正确地保留在 XML 信息集中,如 described by the specs

    附录 D:信息集中没有的内容

    当前版本的 XML 信息集中未提供以下信息(此列表并非详尽无遗):

    [...]

    17) 用于引用属性值的引号类型(单引号或双引号)。

    好消息是这两种 XML 序列化样式描述了完全相同的内容。坏消息是,除非您使用 Canonical XML Serialization(Nokogiri 是 not yet able to produce 最近才能够生成),否则有多种方法可以表示相同的文档,看起来像对标准文本差异工具的许多虚假“更改”。

    如果你能描述一下你为什么想要这个功能(你想要实现的最终目标是什么?)我们可以进一步帮助你。

    您可能还对this similar question 感兴趣。

    【讨论】:

      猜你喜欢
      • 2011-08-31
      • 1970-01-01
      • 2011-02-14
      • 2013-01-01
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多