使用Nokogiri :: XML :: Builder附加元素

我有以下代码:

builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml| xml.myRoot do |xml| xml.oneChild xml.anotherChild end end 

现在我想使用构建器将一些子节点附加到myRoot(第二步,我知道如何立即附加它们)。 我怎样才能做到这一点?

我试过这个:

 node = builder.doc.xpath('//myRoot/oneChild').first Nokogiri::XML::Builder.with(node) do |xml| xml.childOfOneChild 'Im a child of oneChild' end 

哪个不起作用。 他们不会坚持元素,它只是一个空的oneChild。

您的代码生成以下XML,它似乎符合您的规范。 oneChild ,它不会产生空的oneChild 。 如果这不是你想要的,你能告诉我们你的理想输出是什么吗?:

 builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml| xml.myRoot do |xml| xml.oneChild xml.anotherChild end end puts builder.to_xml #  #  #  #  #  node = builder.doc.xpath('//myRoot/oneChild').first Nokogiri::XML::Builder.with(node) do |xml| xml.childOfOneChild 'Im a child of oneChild' end puts builder.to_xml #  #  #  # Im a child of oneChild #  #  #