Hi This has been driving me nuts for the past hour or two. I''m hoping someone here knows the answer. I need to be able to dynamically add some nodes to some xml. The example below is contrived - but hopefully clear enough so you get the ''picture'' So - say I have a Foo object and I want to add something to a child node within Foo''s xml representation before I send the response back to the user. In my controller ... def show @foo = Foo.find(params[:id]) respond_to do |format| format.html # show.html.erb format.xml { render :xml => extend_foo(@foo.to_xml) } end end private def extend_foo(xml) parser = XML::Parser.new(XML::Parser::Context.string(xml)) doc = parser.parse child_node_xpath = doc.find(" .... insert funky xpath string here ....") child_node = child_node_xpath.first logger.debug("\n\nbefore ...\n#{child_node.to_s}\n\n") # this correctly outputs the contents of the ''child_node'' child_node << child = XML::Node.new(''new_node'') child[''new_node_attribute''] = ''true'' logger.debug("\n\nafter ...\n#{child_node.to_s}\n\n") # this correctly outputs the contents of the ''child_node'' - with the ''new_node'' added (along with the ''new_node_attribute'') # NOTE: everything up to here works great. end The problem is that the updated node is not part of the response sent to the client. For lake of a better term - I can''t seem to figure out how to ''save'' the changed node. Any tips/suggestions/pointers would be greatly appreciated. I''m using libxml. Thanks Dave
On Aug 22, 2:39 am, dekhaus <dekh...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > The problem is that the updated node is not part of the response sent > to the client. For lake of a better term - I can''t seem to figure > out how to ''save'' the changed node.Have you tried calling to_s on the document object and returning that ? Fred> > Any tips/suggestions/pointers would be greatly appreciated. I''m > using libxml. > > Thanks > Dave