2

I am using libxml-ruby for parsing XML.

I can able to create the xml file using libxml-ruby, but the problem is I am not able to declare the namespace for generated XML document.

Please help me how to create the namespace for newly generating XML.

The code written for creating xml is:

require 'rubygems' 
require 'libxml'

filename = 'something.xml'
stats_doc = LibXML::XML::Document.new()
stats_doc.root = LibXML::XML::Node.new('root_node') 
stats_doc.root << LibXML::XML::Node.new('elem1') 
stats_doc.save(filename, :indent => true, :encoding => LibXML::XML::Encoding::UTF_8)
ib.
  • 27,830
  • 11
  • 80
  • 100
naveen
  • 1,451
  • 6
  • 21
  • 27

1 Answers1

1

You just have to create a new instance of the XML::Namespace class as described here. Below you can find modified version of your example.

require 'rubygems' 
require 'libxml'

filename = 'something.xml'
stats_doc = LibXML::XML::Document.new()
stats_doc.root = LibXML::XML::Node.new('root_node')

LibXML::XML::Namespace.new(stats_doc.root, 'soap', 'http://schemas.xmlsoap.org/soap/envelope/')

stats_doc.root << LibXML::XML::Node.new('elem1')
stats_doc.save(filename, :indent => true, :encoding => LibXML::XML::Encoding::UTF_8)
Marcin Białoń
  • 590
  • 4
  • 10