19

次のようなxml文字列が与えられます:

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

次のように読みやすくフォーマットするための最良のオプション(rubyを使用)は何ですか?

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

私はここで答えを見つけました:ルビーでxml文字列をフォーマットするための最良の方法は何ですか?、これは本当に役に立ちます。ただし、xmlは次のようにフォーマットされます。

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

私のxml文字列は長さが少し大きいので。したがって、この形式では読み取ることができません。

前もって感謝します!

4

2 に答える 2

27

のこぎりを使うのはどうですか?

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 に答える