如何使用Nokogiri :: XML :: Builder生成动态标签?

时间:2011-03-22 15:05:39

标签: ruby nokogiri

我正在循环遍历数组中的一组标记名称,我想使用构建器打印每个标记名称而不依赖于“<<”的手动XML方法

我想:

builder = Nokogiri::XML::Builder.new do |xml|

  for tag in tags
    xml.tag! tag, someval
  end
end

会这样做,但它只是创建名为“tag”的标签,并将标签变量作为元素的文本值。

有人可以帮忙吗?这似乎应该相对简单,我在搜索引擎上找到答案时遇到了麻烦。我可能不会以正确的方式提出这个问题。

2 个答案:

答案 0 :(得分:10)

尝试以下方法。我添加了一个根节点,因为Nokogiri需要一个根节点,如果我没弄错的话。

builder = Nokogiri::XML::Builder.new do |xml|
  xml.root do |root|
    for tag in tags
      xml.send(tag, someval)
    end
  end
end

答案 1 :(得分:6)

尝试使用method_missing

 builder = Nokogiri::XML::Builder.new do |xml|
   for tag in tags
     xml.method_missing(tag, someval)
   end
 end