XML-файл не аккуратный

Пожалуйста, кто-нибудь может сказать мне причину этого. У меня есть действие create_file в моем контроллере.

   file = File.new("xml/experiment.xml", "w") 
   # creating the builder file for the xml
   xml = Builder::XmlMarkup.new :target => file
   # xml tags 
   xml.instruct! 
   xml.EXPERIMENT_SET { 
   xml.alias("#{@experiment.alias}") 
   xml.center_name "#{@experiment.center_name}"
   } 

Я получаю вывод, как это.

   <?xml version="1.0" encoding="UTF-8"?><EXPERIMENT_SET><alias>ZAP430</alias><center_name></center_name></EXPERIMENT_‌​SET>

Что не является аккуратным XML, все теги отображаются в одну строку.

1 ответ

Решение

Используйте параметр :indent при создании вашего экземпляра XmlMarkup,

Из документации [Builder::XmlMarkup][1]:

xm = Builder.new(:indent=>2)
# xm will produce nicely formatted and indented XML.

xm = Builder.new(:indent=>2, :margin=>4)
# xm will produce nicely formatted and indented XML with 2
# spaces per indent and an over all indentation level of 4.

builder = Builder::XmlMarkup.new(:target=>$stdout, :indent=>2)
builder.name { |b| b.first("Jim"); b.last("Weirich) }
# prints:
#     <name>
#       <first>Jim</first>
#       <last>Weirich</last>
#     </name>
Другие вопросы по тегам