require 'nokogiri'
raw_xml = <<"EOS"
<?xml version="1.0"?>
<Root xmlns:prefix="namespace">
<Element prefix:attribute="value"/>
<Add/>
</Root>
EOS
src = Nokogiri.XML(raw_xml){|c|c.noblanks}
doc = Nokogiri.XML(raw_xml){|c|c.noblanks}
child = src.xpath('//Element').first
#puts child.to_xml
doc.xpath('//Add').first.add_child(child)
#puts child.to_xml
#puts doc.to_xml
__END__
I would expect doc.to_xml to produce:
<?xml version="1.0"?>
<Root xmlns:prefix="namespace">
<Element prefix:attribute="value"/>
<Add>
<Element prefix:attribute="value"/>
</Add>
</Root>
However, calling doc.to_xml actually produces:
<?xml version="1.0"?>
<Root xmlns:prefix="namespace">
<Element prefix:attribute="value"/>
<Add>
<Element attribute="value"/>
</Add>
</Root>