KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a simple task of accessing the values of some attributes. This is a simple script that uses Nokogiri::XML::Builder to create a simple XML doc. require 'nokogiri' builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml| xml.Placement(:messageId => "392847-039820-938777", :system => "MOD", :version => "2.0") { xml.objects { xml.object(:myattribute => "99", :anotherattrib => "333") xml.nextobject_ '9387toot' xml.Entertainment "Last Man Standing" } } end puts builder.to_xml puts builder.root.attributes["messageId"] The results are: <?xml version="1.0" encoding="UTF-8"?> <Placement messageId="392847-039820-938777" version="2.0" system="MOD"> <objects> <object anotherattrib="333" myattribute="99"/> <nextobject>9387toot</nextobject> <Entertainment>Last Man Standing</Entertainment> </objects> </Placement> C:/Ruby/lib/ruby/gems/1.8/gems/nokogiri-1.4.2-x86-mingw32/lib/nokogiri/xml/document.rb:178:in `add_child': Document already has a root node (RuntimeError) from C:/Ruby/lib/ruby/gems/1.8/gems/nokogiri-1.4.2-x86-mingw32/lib/nokogiri/xml/node.rb:455:in `parent=' from C:/Ruby/lib/ruby/gems/1.8/gems/nokogiri-1.4.2-x86-mingw32/lib/nokogiri/xml/builder.rb:358:in `insert' from C:/Ruby/lib/ruby/gems/1.8/gems/nokogiri-1.4.2-x86-mingw32/lib/nokogiri/xml/builder.rb:350:in `method_missing' from C:/Documents and Settings/etrojan/workspace/Lads/tryXPATH2.rb:15 The XML that is generated looks fine. However, my attempts to access attributes cause an error to be generated: Document already has a root node I don't understand why puts would cause this error.
Tags (comma-separated)
Save Edits
Cancel