【问题标题】:XML File not NeatXML 文件不整洁
【发布时间】:2012-02-03 11:29:53
【问题描述】:

请谁能告诉我这样做的原因。我的控制器中有一个 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,所有标签都显示在一行中。

【问题讨论】:

  • 感谢 Tichodroma 的回复。但不幸的是我无法弄清楚解决方案。请你告诉我在我的代码中做什么,我是 ROR 的新手。删除 :target => 文件也无济于事, :indent => 2 也无济于事

标签: xml ruby-on-rails-2


【解决方案1】:

在创建XmlMarkup 的实例时使用参数:indent

来自[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>

【讨论】:

  • 非常感谢 Tichodroma。它工作得很好。感谢你的帮助。干杯
  • Tichodroma,请你告诉我是否可以单独为 xml 标签渲染部分或类似的东西,我基本上是在一次操作中一次性创建多个 xml 文件,我想知道是否有任何方法可以使控制器保持简洁和干净。感谢您的建议。干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-07
  • 1970-01-01
  • 1970-01-01
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多