Node
interface is the primary datatype for the entire
Document Object Model. It represents a single node in the document tree.
While all objects implementing the Node
interface expose
methods for dealing with children, not all objects implementing the
Node
interface may have children. For example,
Text
nodes may not have children, and adding children to
such nodes results in a DOMException
being raised.
The attributes nodeName
, nodeValue
and
attributes
are included as a mechanism to get at node
information without casting down to the specific derived interface. In
cases where there is no obvious mapping of these attributes for a
specific nodeType
(e.g., nodeValue
for an
Element
or attributes
for a Comment
), this returns null
. Note that the specialized interfaces
may contain additional and more convenient mechanisms to get and set the
relevant information.
The values of nodeName
,
nodeValue
, and attributes
vary according to the
node type as follows:
Interface | nodeName | nodeValue | attributes |
---|---|---|---|
Attr |
same as Attr.name |
same as
Attr.value |
null |
CDATASection |
"#cdata-section" |
same as CharacterData.data , the
content of the CDATA Section |
null |
Comment |
"#comment" |
same as CharacterData.data , the
content of the comment |
null |
Document |
"#document" |
null |
null |
DocumentFragment |
"#document-fragment" |
null |
null |
DocumentType |
same as
DocumentType.name |
null |
null |
Element |
same as Element.tagName |
null |
NamedNodeMap |
Entity |
entity name | null |
null |
EntityReference |
name of entity referenced |
null |
null |
Notation |
notation name |
null |
null |
ProcessingInstruction |
same
as ProcessingInstruction.target |
same as
ProcessingInstruction.data |
null |
Text |
"#text" |
same as CharacterData.data , the content
of the text node |
null |
See also the Document Object Model (DOM) Level 3 Core Specification.
Field Summary | ||||||||
---|---|---|---|---|---|---|---|---|
public static final short | ELEMENT_NODE | The node is an Element . | ||||||
public static final short | ATTRIBUTE_NODE | The node is an Attr . | ||||||
public static final short | TEXT_NODE | The node is a Text node. | ||||||
public static final short | CDATA_SECTION_NODE | The node is a CDATASection . | ||||||
public static final short | ENTITY_REFERENCE_NODE | The node is an EntityReference . | ||||||
public static final short | ENTITY_NODE | The node is an Entity . | ||||||
public static final short | PROCESSING_INSTRUCTION_NODE | The node is a ProcessingInstruction . | ||||||
public static final short | COMMENT_NODE | The node is a Comment . | ||||||
public static final short | DOCUMENT_NODE | The node is a Document . | ||||||
public static final short | DOCUMENT_TYPE_NODE | The node is a DocumentType . | ||||||
public static final short | DOCUMENT_FRAGMENT_NODE | The node is a DocumentFragment . | ||||||
public static final short | NOTATION_NODE | The node is a Notation . | ||||||
public static final short | DOCUMENT_POSITION_DISCONNECTED | The two nodes are disconnected. Order between disconnected nodes is always implementation-specific. | ||||||
public static final short | DOCUMENT_POSITION_PRECEDING | The second node precedes the reference node. | ||||||
public static final short | DOCUMENT_POSITION_FOLLOWING | The node follows the reference node. | ||||||
public static final short | DOCUMENT_POSITION_CONTAINS | The node contains the reference node. A node which contains is always preceding, too. | ||||||
public static final short | DOCUMENT_POSITION_CONTAINED_BY | The node is contained by the reference node. A node which is contained is always following, too. | ||||||
public static final short | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | The determination of preceding versus following is implementation-specific. |
Method from org.w3c.dom.Node Detail: | ||||||||
---|---|---|---|---|---|---|---|---|
newChild to the end of the list of children
of this node. If the newChild is already in the tree, it
is first removed. | ||||||||
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. | ||||||||
| ||||||||
NamedNodeMap containing the attributes of this node (if
it is an Element ) or null otherwise. | ||||||||
null if the
implementation wasn't able to obtain an absolute URI. This value is
computed as described in . However, when the Document
supports the feature "HTML" [DOM Level 2 HTML]
, the base URI is computed using first the value of the href
attribute of the HTML BASE element if any, and the value of the
documentURI attribute from the Document
interface otherwise. | ||||||||
NodeList that contains all children of this node. If
there are no children, this is a NodeList containing no
nodes. | ||||||||
Node
interface. | ||||||||
null . | ||||||||
null . | ||||||||
For nodes of any type other than ELEMENT_NODE and
ATTRIBUTE_NODE and nodes created with a DOM Level 1
method, such as Document.createElement() , this is always
null . | ||||||||
null if it is
unspecified (see ).
This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. For nodes of any type other than ELEMENT_NODE and
ATTRIBUTE_NODE and nodes created with a DOM Level 1
method, such as Document.createElement() , this is always
null .
Note: Per the Namespaces in XML Specification [XML Namespaces] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. | ||||||||
null . | ||||||||
| ||||||||
| ||||||||
null , setting it has no effect,
including if the node is read-only. | ||||||||
Document object associated with this node. This is
also the Document object used to create new nodes. When
this node is a Document or a DocumentType
which is not used with any Document yet, this is
null . | ||||||||
Attr ,
Document , DocumentFragment ,
Entity , and Notation may have a parent.
However, if a node has just been created and not yet added to the
tree, or if it has been removed from the tree, this is
null . | ||||||||
null if it is
unspecified. When it is defined to be null , setting it
has no effect, including if the node is read-only.
Note that setting this attribute, when permitted, changes the nodeName attribute, which holds the qualified name, as
well as the tagName and name attributes of
the Element and Attr interfaces, when
applicable.
Setting the prefix to null makes it unspecified,
setting it to an empty string is implementation dependent.
Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the namespaceURI and localName do not change.
For nodes of any type other than ELEMENT_NODE and
ATTRIBUTE_NODE and nodes created with a DOM Level 1
method, such as createElement from the
Document interface, this is always null . | ||||||||
null . | ||||||||
null , setting it
has no effect. On setting, any possible children this node may have
are removed and, if it the new string is not empty or
null , replaced by a single Text node
containing the string this attribute is set to.
On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute Text.isElementContentWhitespace ). Similarly, on setting,
no parsing is performed either, the input string is taken as pure
textual content.
The string returned is made of the text content of this node depending on its type, as defined below:
| ||||||||
setUserData with the same key. | ||||||||
| ||||||||
| ||||||||
newChild before the existing child node
refChild . If refChild is null ,
insert newChild at the end of the list of children.
If newChild is a DocumentFragment object,
all of its children are inserted, in the same order, before
refChild . If the newChild is already in the
tree, it is first removed.
Note: Inserting a node before itself is implementation dependent. | ||||||||
namespaceURI is the
default namespace or not. | ||||||||
This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with Node.isSameNode() . All nodes that are the
same will also be equal, though the reverse may not be true.
Two nodes are equal if and only if the following conditions are satisfied: For two DocumentType nodes to be equal, the following
conditions must also be satisfied:
On the other hand, the following do not affect equality: the ownerDocument , baseURI , and
parentNode attributes, the specified
attribute for Attr nodes, the schemaTypeInfo
attribute for Attr and Element nodes, the
Text.isElementContentWhitespace attribute for
Text nodes, as well as any user data or event listeners
registered on the nodes.
Note: As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly. | ||||||||
This method provides a way to determine whether two Node references returned by the implementation reference
the same object. When two Node references are references
to the same object, even if through a proxy, the references may be
used completely interchangeably, such that all attributes have the
same values and calling the same DOM method on either reference
always has exactly the same effect. | ||||||||
| ||||||||
See for details on the algorithm used by this method. | ||||||||
See for details on the algorithm used by this method. | ||||||||
Text nodes in the full depth of the sub-tree
underneath this Node , including attribute nodes, into a
"normal" form where only structure (e.g., elements, comments,
processing instructions, CDATA sections, and entity references)
separates Text nodes, i.e., there are neither adjacent
Text nodes nor empty Text nodes. This can
be used to ensure that the DOM view of a document is the same as if
it were saved and re-loaded, and is useful when operations (such as
XPointer [XPointer]
lookups) that depend on a particular document tree structure are to
be used. If the parameter "normalize-characters" of the
DOMConfiguration object attached to the
Node.ownerDocument is true , this method
will also fully normalize the characters of the Text
nodes.
Note: In cases where the document contains
| ||||||||
oldChild from the list
of children, and returns it. | ||||||||
oldChild with newChild
in the list of children, and returns the oldChild node.
If newChild is a DocumentFragment object,
oldChild is replaced by all of the
DocumentFragment children, which are inserted in the
same order. If the newChild is already in the tree, it
is first removed.
Note: Replacing a node with itself is implementation dependent. | ||||||||
null , setting it has no effect,
including if the node is read-only. | ||||||||
null if it is
unspecified. When it is defined to be null , setting it
has no effect, including if the node is read-only.
Note that setting this attribute, when permitted, changes the nodeName attribute, which holds the qualified name, as
well as the tagName and name attributes of
the Element and Attr interfaces, when
applicable.
Setting the prefix to null makes it unspecified,
setting it to an empty string is implementation dependent.
Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the namespaceURI and localName do not change.
For nodes of any type other than ELEMENT_NODE and
ATTRIBUTE_NODE and nodes created with a DOM Level 1
method, such as createElement from the
Document interface, this is always null . | ||||||||
null , setting it
has no effect. On setting, any possible children this node may have
are removed and, if it the new string is not empty or
null , replaced by a single Text node
containing the string this attribute is set to.
On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute Text.isElementContentWhitespace ). Similarly, on setting,
no parsing is performed either, the input string is taken as pure
textual content.
The string returned is made of the text content of this node depending on its type, as defined below:
| ||||||||
getUserData with the
same key. |