Nokogiri能保留属性引用风格吗?



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

<?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;}"/>

是否有一种方法来转换它,使输出将完全保留引号?也就是外面一个人,里面两个人?

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

实际上,这些信息甚至没有正确地保留在XML信息集中,如规范所述:

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

当前版本的XML信息集没有表示以下信息(此列表并非详尽无遗):

[…]

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

好消息是这两种XML序列化样式描述完全相同的内容。坏消息是,除非您正在使用规范XML序列化(Nokogiri 还不能生成只是最近才能够生成),否则有很多不同的方法来表示相同的文档,这看起来像是对标准文本区分工具的许多虚假的"更改"。

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

你可能也对这个类似的问题感兴趣。

相关内容

  • 没有找到相关文章

最新更新