Подтвердить что ты не робот

Форматировать строку xml в Ruby

для строки xml, например:

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

какой лучший вариант (используя ruby) для форматирования его можно читать следующим образом:

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

Я нашел ответ здесь: что лучше всего форматировать строку xml в ruby?, что очень полезно. Но он форматирует xml как:

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

Как моя строка xml немного большая. Поэтому он не читается в этом формате.

Спасибо заранее!

4b9b3361

Ответ 1

Используйте REXML :: Formatters :: Pretty formatter:

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)

Ответ 2

Как насчет использования 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