How to create an XML document with a namespaced root element with Nokogiri Builder

后端 未结 3 771
执笔经年
执笔经年 2020-12-15 09:02

I\'m implementing an exporter for XML data that requires namespaces. I\'m using Nokogiri\'s XML Builder (version 1.4.0) to do this, however, I can\'t get Nokogiri to create

3条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-15 09:20

    Three years after Luke's answer, it's gotten yet simpler. You can now use the namespace "before" it's defined. This code:

    require 'nokogiri'
    
    NAMESPACES = { 'xmlns:foo' => 'bar', 'xmlns:baz' => 'bat' }
    
    builder = Nokogiri::XML::Builder.new { |xml|
      xml['foo'].RootElement(NAMESPACES) {
        xml['baz'].FirstChild
      }
    }
    
    puts builder.to_xml
    

    Outputs this XML:

    
    
      
    
    

提交回复
热议问题