Clonare un Element

Ciao a tutti,
sono nuovo nel mondo di Ruby e per impratichirmi sto provando a
riscrivere dei vecchi programmi con questo nuovo linguaggio.
Ho un problema con la gestione degli XML, per parsificarli e crearne di
nuovi sto usando REXML.
Ho creato un Element (netName) che vorrei inserire in due livelli di un
XML, inizialemte avevo provato ad inserirlo direttamente con:

muxPar << netName
mux << netName

ma procedendo in questo modo teneva valido solo il secondo inserimento
(quello nell’element mux)
ho provato quindi utilizzando il metodo clone di Element

netNameClone = netName.clone
muxPar << netName
mux << netNameClone

ma il metodo non clona l’Element per intero (come dice il doc: “Creates
a shallow copy of self”), omettendo testo, attributi e sotto-elementi,
generando quindi un unico elemento vuoto avente lo stesso nome.
Qualcuno sa dirmi come posso fare per inserire l’element in entrambi gli
antri due element senza dover rigenerare il secondo per intero?
Grazie in anticipo

class Element

def deep_clone
Marshal::load(Marshal.dump(self))
end

Cioe’ inserisci (sovrascrivi, usa add_method o la metaprogrammazione) la
funzione deep_clone nella classe Element

Funziona alla grande!
Comodo il modulo marshal, da tenere il considerazione per il futuro :wink:
Grazie

Antonio Di Fluri wrote:

scrivi cosi’ e la classe Element prendera’ in se il nuovo metodo
mantendo gli altri:
class Element
def deep_clone
Marshal::load(Marshal.dump(self))
end
end

scrivi cosi’ e la classe Element prendera’ in se il nuovo metodo
mantendo gli altri:
class Element
def deep_clone
Marshal::load(Marshal.dump(self))
end
end