require 'nokogiri' # http://stackoverflow.com/questions/10300095/how-to-add-child-nodes-in-nodeset-using-nokogiri def addSkipped(node, doc) skipped = Nokogiri::XML::Node.new('skipped', doc) node.add_child skipped end doc = Nokogiri::XML("") ## Add a node ts = Nokogiri::XML::Node.new('testcase', doc) #ts.content='pass' ts.set_attribute('name', 'my testcase') ts.set_attribute('classname', 'scoutui.assert') ts.set_attribute('time', 29) #skipped = Nokogiri::XML::Node.new('skipped', doc) #ts.add_child skipped addSkipped(ts, doc) doc.root.add_child ts node_set = Nokogiri::XML::NodeSet.new(doc) sys_out = Nokogiri::XML::Node.new('system-out', doc) sys_out.content='my STDOUT dump' doc.root.add_child(sys_out) sys_err = Nokogiri::XML::Node.new('system-err', doc) sys_err.content='my STDERR dump' doc.root.add_child(sys_err) puts doc.to_s