我想使用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'的別名。 –