Ruby:将新的XML元素插入现有的XML文件中

时间:2017-09-25 16:32:44

标签: ruby xml nokogiri

如何将另一个XML元素插入到我使用Builder :: XmlMarkup创建的XML文件中?例如,像

xml = Builder::XmlMarkup.new( :indent => 4 )

xml.content
    xml.common do
        xml.common_field1 do
            // common_field1 content
        end
        xml.common_field2 do
            // common_field 2 content
        end
    end
    xml.custom do 
        xml.insert!(<XML element>)
    end
end

<XML element>看起来像

<elements>
    <element>
        // element content
    </element>
    <element>
        // element content
    </element>
<elements>

,最终输出看起来像

<content>
 <common>
  <content1>
   <!-- content1 -->
  </content1>
  <content2>
   <!-- content2 -->
  </content2>
 </common>
 <custom>
  <elements>
   <element>
    <!-- element content -->
   </element>
   <element>
    <!-- element content -->
   </element>
  </elements>
 </custom>
</content>

我尝试过使用<<运算符,但遗憾的是这并不能保持格式化。

1 个答案:

答案 0 :(得分:1)

<<正是您所需要的:

xml.custom do |custom|
    custom << '<XML element>'
end

Rubydocs似乎不起作用,所以这里是源代码的链接:https://github.com/jimweirich/builder/blob/master/lib/builder/xmlbase.rb#L104