【问题标题】:How can I generate a dynamic tag with Nokogiri::XML::Builder?如何使用 Nokogiri::XML::Builder 生成动态标签?
【发布时间】:2011-09-08 15:47:58
【问题描述】:

我正在遍历数组中的一组标签名称,我想使用 builder 打印每个标签名称,而无需求助于“

我认为:

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

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

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

有人可以帮忙吗?这看起来应该比较简单,我只是在搜索引擎上找不到答案。我可能没有以正确的方式问这个问题。

【问题讨论】:

  • 顺便说一句,是 Nokogirl 还是 Nokogiri? :)

标签: ruby nokogiri


【解决方案1】:

试试下面的。如果我没记错的话,我添加了一个根节点,因为 Nokogiri 需要一个。

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

【讨论】:

  • 即使使用子元素块也能很好地工作!例如:x.send(:key) {x.val 3}
【解决方案2】:

尝试使用method_missing

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

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多