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

AKW*_*KWF 5 ruby nokogiri

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

我以为:

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

  for tag in tags
    xml.tag! tag, someval
  end
end
Run Code Online (Sandbox Code Playgroud)

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

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

leb*_*eze 10

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

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


小智 7

尝试使用method_missing

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