I just tested the following steps in irb and got something odd:
require 'rubygems'
require 'rexml/document'
include REXML
e1=Element.new("E1")
e2=Element.new("E2")
e1.add_element(e2)
e1Dup=e1.dup
puts e1
puts e1Dup
e1.delete_element(e1.elements[1])
puts e1
puts e1Dup
I only want changes on e1, however, the result shows both element got changed. How could this happen? The result is below:
<E1><E2/></E1>
<E1><E2/></E1>
<E1/>
<E1/>