irb で次の手順をテストしたところ、奇妙な結果が得られました。
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
e1 の変更のみが必要ですが、結果は両方の要素が変更されたことを示しています。これはどのように起こりますか?結果は以下のとおりです。
<E1><E2/></E1>
<E1><E2/></E1>
<E1/>
<E1/>