DOM Node.cloneNode()

Don Park donpark at quake.net
Tue Aug 18 22:08:27 BST 1998


Tyler,

>In other words, if I have a Node named "A" with two children named "B"
>and "C", would you do something like this in Java for A:

A shallow clone of "A" will result in a node of same type as "A" with no
children.
A deep clone of "A" will result in a node of same type as "A" with clones of
"B" and "C".

A node has exactly one parent or no parent at all so "B" and "C" can not be
children of both "A" and its clone.  Since it is inappropriate for cloneNode
to move "B" and "C" from "A" to its clone, a clone is made and added during
deep clone.

>Similiarly, what happens with the Attributes of a Node is also not too
>clear to me.  Are attributes copied by value or by reference as well?
>What happens to the parent attribute?  Should it be copied as well or
>should it just have the implicit DocumentFragment reference as its
>parent?  What happens to the references to the siblings of a node?

Whether an attribute is copied by value or by reference depends on the
implementation.  I think most implementations will copy assigned attributes
by value and default attributes by reference.  Attributes does not have a
parent nor siblings so it can not return DocumentFragment as its parent.

Hope this helps,

Don Park



xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list