Returns a duplicate of this node, i.e., serves as a generic copy
constructor for nodes. The duplicate node has no parent (
parentNode
is
null
) and no user data. User
data associated to the imported node is not carried over. However, if
any
UserDataHandlers
has been specified along with the
associated data these handlers will be called with the appropriate
parameters before this method returns.
Cloning an
Element
copies all attributes and their
values, including those generated by the XML processor to represent
defaulted attributes, but this method does not copy any children it
contains unless it is a deep clone. This includes text contained in
an the
Element
since the text is contained in a child
Text
node. Cloning an
Attr
directly, as
opposed to be cloned as part of an
Element
cloning
operation, returns a specified attribute (
specified
is
true
). Cloning an
Attr
always clones its
children, since they represent its value, no matter whether this is a
deep clone or not. Cloning an
EntityReference
automatically constructs its subtree if a corresponding
Entity
is available, no matter whether this is a deep
clone or not. Cloning any other type of node simply returns a copy of
this node.
Note that cloning an immutable subtree results in a mutable copy,
but the children of an
EntityReference
clone are readonly
. In addition, clones of unspecified
Attr
nodes are
specified. And, cloning
Document
,
DocumentType
,
Entity
, and
Notation
nodes is implementation dependent.
Returns:
The duplicate node.
Parameters:
-
deep - If
true
, recursively clone the subtree under
the specified node; if
false
, clone only the node
itself (and its attributes, if it is an
Element
).