我正在使用Nokogiri创建一些XML:
def builder
Nokogiri::XML::Builder.new do |xml|
xml.foobar do
xml.comment('Some comment', created_at: Time.zone.now.iso8601)
end
end
end
我想要这个结构:
<foobar>
<comment created_at='...'>
Some comment
</comment>
</foobar>
不幸的是,Nokogiri DSL不允许我命名节点comment
,因为它是创建XML-Comments的内部方法。我怎样才能做到这一点?
答案 0 :(得分:3)
来自文档:http://www.rubydoc.info/github/sparklemotion/nokogiri/Nokogiri/XML/Builder
不幸的是,某些方法在ruby中定义,难以去除或有危险。例如,您可能想要创建名称为“type”,“class”和“id”的标签。在这种情况下,您可以使用下划线来消除方法调用中的标记名称。
因此你需要:
def builder
Nokogiri::XML::Builder.new do |xml|
xml.foobar do
xml.comment_('Some comment', created_at: Time.zone.now.iso8601)
end
end
end