19

给定一个这样的 xml 字符串:

<some><nested><xml>value</xml></nested></some>

什么是最好的选择(使用红宝石)来格式化它可读:

<some>
  <nested>
    <xml>value</xml>
  </nested>
</some>

我在这里找到了答案:在 ruby​​ 中格式化 xml 字符串的最佳方法是什么?,这真的很有帮助。但它格式化xml,如:

<some>
  <nested>
    <xml>
      value
    </xml>
  </nested>
</some>

因为我的 xml 字符串的长度有点大。所以这种格式不可读。

提前致谢!

4

2 回答 2

27

使用 nokogiri 怎么样?

require 'nokogiri'
source = '<some><nested><xml>value</xml></nested></some>'
doc = Nokogiri::XML source
puts doc.to_xml
# <?xml version=\"1.0\"?>\n<some>\n  <nested>\n    <xml>value</xml>\n  </nested>\n</some>\n
于 2012-09-26T09:46:02.043 回答
23

使用REXML::Formatters::Pretty格式化程序:

require "rexml/document" 
source = '<some><nested><xml>value</xml></nested></some>'

doc = REXML::Document.new(source)
formatter = REXML::Formatters::Pretty.new

# Compact uses as little whitespace as possible
formatter.compact = true
formatter.write(doc, $stdout)
于 2012-09-26T09:36:35.047 回答