Ruby nokogiri能否在保存xml时对属性使用单引号?

Ruby nokogiri能否在保存xml时对属性使用单引号?,ruby,xml,nokogiri,Ruby,Xml,Nokogiri,Nokogiri使用双引号保存XML属性,即使它读取的DOM有单引号。 这当然是完全合法的,但即使DOM没有改变,它也会对文件内容进行恼人的更改,这使得diff和git等工具很难弄清楚发生了什么 我能强迫它使用单引号吗(或者更好的是,如果没有任何修改,保留原始的引用样式) REXML具有设置单引号/双引号的功能: doc.context[:attribute_quote] = :quote 我找不到与nokogiri类似的东西 有没有可能让它用单引号保存文档?看起来答案是否定的;不是像目前编

Nokogiri使用双引号保存XML属性,即使它读取的DOM有单引号。 这当然是完全合法的,但即使DOM没有改变,它也会对文件内容进行恼人的更改,这使得diff和git等工具很难弄清楚发生了什么

我能强迫它使用单引号吗(或者更好的是,如果没有任何修改,保留原始的引用样式)

REXML具有设置单引号/双引号的功能:

doc.context[:attribute_quote] = :quote 
我找不到与nokogiri类似的东西


有没有可能让它用单引号保存文档?

看起来答案是否定的;不是像目前编写的库那样,也可能根本不是。跟踪节点序列化的调用路径:

  • Nokogiri::XML::Node#to_s
    调用
    to_XML
  • Nokogiri::XML::Node#to_XML
    调用
    serialize
    (设置一些默认选项)
  • Nokogiri::XML::Node#序列化
    调用
    write_to
  • Nokogiri::XML::Node#write#u to
    调用
    native_write_to
  • Nokogiri::XML::Node#native_write_to
    调用
    native_write_to
    ,如下所示:
&bsp

因此,在这一点上,您将受制于libxml。谷歌搜索不会立即发现任何冒烟的枪支


我想你应该去看看你能得到什么样的温柔的爱

可悲的是,我得出了同样的结论,回到了原来的应用程序,让它在任何地方都只使用双引号来让nokogiri开心:-/about“或者保留原版中的任何引用样式”参见
def native_write_to(io, encoding, indent_string, options)
  set_xml_indent_tree_output 1
  set_xml_tree_indent_string indent_string
  savectx = LibXML.xmlSaveToIO(IoCallbacks.writer(io), nil, nil, encoding, options)
  LibXML.xmlSaveTree(savectx, cstruct)
  LibXML.xmlSaveClose(savectx)
  io
end