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>