所以我正在尝试构建一个XML文档以供导出。但我需要在标题中添加额外的文本,但无法弄清楚如何。
def as_xml
require 'rubygems'
require 'builder'
builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2)
xml = builder.propertyList { |b|
b.description(self.description);
self.highlights.each do |h|
b.highlight(h);
end
}
end
返回:
<propertyList>
<description>"Description goes here"
</description>
<highlight>Highlight 1</highlight>
<highlight>Highlight 2</highlight>
</propertyList>
有没有办法让它可以为高亮标记添加ID属性?
例如<highlight id=1>
等
还想知道是否有办法定义标签是否应该使用构建器自动关闭?
e.g:
<auction date=self.auctionDate />
答案 0 :(得分:0)
您可以将属性作为辅助参数的哈希传递:
self.highlights.each_with_index do |h, i|
b.highlight(h, id: i+1);
end
=> <highlight id='1'>Highlight 1</highlight>
=> <highlight id='2'>Highlight 2</highlight>
如果你只传递一个哈希,你可以得到一个自闭节点:
b.auction(date: 'someDate')
=> <auction date='someDate' />