如何让Builder创建<tag> </tag>而不是<tag> </tag>

时间:2010-11-24 11:40:32

标签: ruby xml tags builder

我,使用Builder :: XmlMarkup来创建xml。我想创建一个没有内容的标签,因为api迫使我创建它。 如果我使用博客

xml.tag do
end

我得到了我需要的东西

<tag></tag>

但我希望它更短

xml.mytag

这给了我

<mytag/>

但我想要

<mytag></mytag>

我必须作为选项传递什么。

问凯

3 个答案:

答案 0 :(得分:2)

为什么您想要<mytag></mytag>而不是<mytag/>?由于输出是XML,下游应用程序不应该知道或关心差异。

根据Infoset规范(Appendix D point 7),“空元素的两种形式之间的差异:<foo/><foo></foo>”未在XML信息集中表示。< / p>

这不能回答你的“如何”问题,但是如果你发现自己实际上不需要做你想做的事情,它可能会让你免于一场艰难而且不必要的疯狂追逐。

答案 1 :(得分:2)

只需将空字符串作为参数传递。 xml.mytag('')

答案 2 :(得分:1)

ok空字符串很好,另一个单行方式是我发现的空块。

xml.mytag{}