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

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to