动态添加属性到Builder标签
这可能是一个很糟糕的标题。如果有人对如何描述这个问题有更好的想法,很高兴听到。
如果我在 Python 中使用 ElementTree 构建 XML 文档,我可以执行类似的操作,
tag = ET.SubElement(root, 'tag')
tag.set('foo', 'true')
if bar
tag.set('baz', 'false')
但是使用 Ruby 中的 Builder,我可以了解如何设置标签属性的唯一方法是执行以下操作:
xml.tag :foo => 'true', :baz => 'false'
有没有适合我的方法在那之后稍后分配 baz
?或者我必须像这样重写整个事情:
if bar
xml.tag :foo => 'true', :baz => 'false'
else
xml.tag :foo => 'true', :baz => 'true'
end
That may be a shitty title. If anyone has a better idea for how to describe this question, happy to hear it.
If I'm building an XML document with ElementTree in Python, I can do something along the lines of
tag = ET.SubElement(root, 'tag')
tag.set('foo', 'true')
if bar
tag.set('baz', 'false')
But with Builder in Ruby, The only way I can see how to set tag attributes is to do the following:
xml.tag :foo => 'true', :baz => 'false'
Is there a way for me to assign baz
later after that point? Or do I have to rewrite the entire thing like so:
if bar
xml.tag :foo => 'true', :baz => 'false'
else
xml.tag :foo => 'true', :baz => 'true'
end
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您不就地更新时,代码会更清晰。为什么不是这个?
Code is more clear when you don't update in-place. Why not this?