KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
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 a root node with a namespace. This works: Nokogiri::XML::Builder.new { |xml| xml.root('xmlns:foobar' => 'my-ns-url') }.to_xml <?xml version="1.0"?> <root xmlns:foobar="my-ns-url"/> As does this: Nokogiri::XML::Builder.new do |xml| xml.root('xmlns:foobar' => 'my-ns-url') { xml['foobar'].child } end.to_xml <?xml version="1.0"?> <root xmlns:foobar="my-ns-url"> <foobar:child/> </root> However, I need something like <foo:root> and this doesn't work: Nokogiri::XML::Builder.new { |xml| xml['foobar'].root('xmlns:foobar' => 'my-ns-url') }.to_xml NoMethodError: undefined method `namespace_definitions' for #<Nokogiri::XML::Document:0x11bfef8 name="document"> Namespaces have to be defined before use, apparently, so there's no way to add one to the root node. I found " Define root node with a namespace? " on the Nokogiri mailing list, but it had no replies. Does anyone have a solution?
Tags (comma-separated)
Save Edits
Cancel