我想使用Nokogiri压缩现有的XML。我有以下的演示代码:使用nokogiri的紧凑的现有XML
#!/usr/bin/env ruby
require 'nokogiri'
doc = Nokogiri.XML <<-XML.strip
<?xml version="1.0" encoding="UTF-8"?>
<root>
<foo>
<bar>test</bar>
</foo>
</root>
XML
doc.write_xml_to($stdout, indent: 0)
我期望看到
<?xml version="1.0" encoding="UTF-8"?>
<root><foo><bar>test</bar></foo></root>
而是我看到
<?xml version="1.0" encoding="UTF-8"?>
<root>
<foo>
<bar>test</bar>
</foo>
</root>
我已经试过
doc.write_to($stdout, indent: 0, save_with: Nokogiri::XML::Node::SaveOptions::AS_XML)
但没有按”不管工作。
如何删除可忽略的空格?
https://stackoverflow.com/questions/8406251/nokogiri-to-xml-without-carriage-returns可能帮帮我。如果你有很多级别的数据,我会建议sub,但它不可行。唯一能想到的是使用正则表达式,但是如果你在XML属性或值中有很长的字符串,那么这可能也不起作用。 – whodini9
@ whodini9我没有使用构建器,因为我的最终目标是压缩现有的XML文件。此外,根据Nokogiri的官方文档和源代码,'Node#write_xml_to'只需使用'save_with:DEFAULT_XML'选项调用'Node#write_to'。顺便说一句,'AS_XML'是'DEFAULT_XML'的别名。 –