Nodepublic interface Node The 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. |
Fields Summary |
---|
public static final short | ELEMENT_NODEThe node is an Element . | public static final short | ATTRIBUTE_NODEThe node is an Attr . | public static final short | TEXT_NODEThe node is a Text node. | public static final short | CDATA_SECTION_NODEThe node is a CDATASection . | public static final short | ENTITY_REFERENCE_NODEThe node is an EntityReference . | public static final short | ENTITY_NODEThe node is an Entity . | public static final short | PROCESSING_INSTRUCTION_NODEThe node is a ProcessingInstruction . | public static final short | COMMENT_NODEThe node is a Comment . | public static final short | DOCUMENT_NODEThe node is a Document . | public static final short | DOCUMENT_TYPE_NODEThe node is a DocumentType . | public static final short | DOCUMENT_FRAGMENT_NODEThe node is a DocumentFragment . | public static final short | NOTATION_NODEThe node is a Notation . | public static final short | DOCUMENT_POSITION_DISCONNECTEDThe two nodes are disconnected. Order between disconnected nodes is
always implementation-specific. | public static final short | DOCUMENT_POSITION_PRECEDINGThe second node precedes the reference node. | public static final short | DOCUMENT_POSITION_FOLLOWINGThe node follows the reference node. | public static final short | DOCUMENT_POSITION_CONTAINSThe node contains the reference node. A node which contains is always
preceding, too. | public static final short | DOCUMENT_POSITION_CONTAINED_BYThe node is contained by the reference node. A node which is contained
is always following, too. | public static final short | DOCUMENT_POSITION_IMPLEMENTATION_SPECIFICThe determination of preceding versus following is
implementation-specific. |
Methods Summary |
---|
public org.w3c.dom.Node | appendChild(org.w3c.dom.Node newChild)Adds the node newChild to the end of the list of children
of this node. If the newChild is already in the tree, it
is first removed.
| public org.w3c.dom.Node | cloneNode(boolean deep)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.
| public short | compareDocumentPosition(org.w3c.dom.Node other)Compares the reference node, i.e. the node on which this method is
being called, with a node, i.e. the one passed as a parameter, with
regard to their position in the document and according to the
document order.
| public org.w3c.dom.NamedNodeMap | getAttributes()A NamedNodeMap containing the attributes of this node (if
it is an Element ) or null otherwise.
| public java.lang.String | getBaseURI()The absolute base URI of this node or 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.
| public org.w3c.dom.NodeList | getChildNodes()A NodeList that contains all children of this node. If
there are no children, this is a NodeList containing no
nodes.
| public java.lang.Object | getFeature(java.lang.String feature, java.lang.String version)This method returns a specialized object which implements the
specialized APIs of the specified feature and version, as specified
in . The specialized object may also be obtained by using
binding-specific casting methods but is not necessarily expected to,
as discussed in . This method also allow the implementation to
provide specialized objects which do not support the Node
interface.
| public org.w3c.dom.Node | getFirstChild()The first child of this node. If there is no such node, this returns
null .
| public org.w3c.dom.Node | getLastChild()The last child of this node. If there is no such node, this returns
null .
| public java.lang.String | getLocalName()Returns the local part of the qualified name of this node.
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 .
| public java.lang.String | getNamespaceURI()The namespace URI of this node, or 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.
| public org.w3c.dom.Node | getNextSibling()The node immediately following this node. If there is no such node,
this returns null .
| public java.lang.String | getNodeName()The name of this node, depending on its type; see the table above.
| public short | getNodeType()A code representing the type of the underlying object, as defined above.
| public java.lang.String | getNodeValue()The value of this node, depending on its type; see the table above.
When it is defined to be null , setting it has no effect,
including if the node is read-only.
| public org.w3c.dom.Document | getOwnerDocument()The 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 .
| public org.w3c.dom.Node | getParentNode()The parent of this node. All nodes, except 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 .
| public java.lang.String | getPrefix()The namespace prefix of this node, or 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 .
| public org.w3c.dom.Node | getPreviousSibling()The node immediately preceding this node. If there is no such node,
this returns null .
| public java.lang.String | getTextContent()This attribute returns the text content of this node and its
descendants. When it is defined to be 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:
Node type |
Content |
ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE,
DOCUMENT_FRAGMENT_NODE |
concatenation of the textContent
attribute value of every child node, excluding COMMENT_NODE and
PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the
node has no children. |
TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE,
PROCESSING_INSTRUCTION_NODE |
nodeValue |
DOCUMENT_NODE,
DOCUMENT_TYPE_NODE, NOTATION_NODE |
null |
| public java.lang.Object | getUserData(java.lang.String key)Retrieves the object associated to a key on a this node. The object
must first have been set to this node by calling
setUserData with the same key.
| public boolean | hasAttributes()Returns whether this node (if it is an element) has any attributes.
| public boolean | hasChildNodes()Returns whether this node has any children.
| public org.w3c.dom.Node | insertBefore(org.w3c.dom.Node newChild, org.w3c.dom.Node refChild)Inserts the node 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.
| public boolean | isDefaultNamespace(java.lang.String namespaceURI)This method checks if the specified namespaceURI is the
default namespace or not.
| public boolean | isEqualNode(org.w3c.dom.Node arg)Tests whether two nodes are equal.
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:
- The two nodes are of the same type.
- The following string
attributes are equal:
nodeName , localName ,
namespaceURI , prefix , nodeValue
. This is: they are both null , or they have the same
length and are character for character identical.
- The
attributes NamedNodeMaps are equal. This
is: they are both null , or they have the same length and
for each node that exists in one map there is a node that exists in
the other map and is equal, although not necessarily at the same
index.
- The
childNodes NodeLists are equal.
This is: they are both null , or they have the same
length and contain equal nodes at the same index. Note that
normalization can affect equality; to avoid this, nodes should be
normalized before being compared.
For two DocumentType nodes to be equal, the following
conditions must also be satisfied:
- The following string attributes
are equal:
publicId , systemId ,
internalSubset .
- The
entities
NamedNodeMaps are equal.
- The
notations
NamedNodeMaps are equal.
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.
| public boolean | isSameNode(org.w3c.dom.Node other)Returns whether this node is the same node as the given one.
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.
| public boolean | isSupported(java.lang.String feature, java.lang.String version)Tests whether the DOM implementation implements a specific feature and
that feature is supported by this node, as specified in .
| public java.lang.String | lookupNamespaceURI(java.lang.String prefix)Look up the namespace URI associated to the given prefix, starting from
this node.
See for details on the algorithm used by this method.
| public java.lang.String | lookupPrefix(java.lang.String namespaceURI)Look up the prefix associated to the given namespace URI, starting from
this node. The default namespace declarations are ignored by this
method.
See for details on the algorithm used by this method.
| public void | normalize()Puts all 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
CDATASections , the normalize operation alone may not be
sufficient, since XPointers do not differentiate between
Text nodes and CDATASection nodes.
| public org.w3c.dom.Node | removeChild(org.w3c.dom.Node oldChild)Removes the child node indicated by oldChild from the list
of children, and returns it.
| public org.w3c.dom.Node | replaceChild(org.w3c.dom.Node newChild, org.w3c.dom.Node oldChild)Replaces the child node 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.
| public void | setNodeValue(java.lang.String nodeValue)The value of this node, depending on its type; see the table above.
When it is defined to be null , setting it has no effect,
including if the node is read-only.
| public void | setPrefix(java.lang.String prefix)The namespace prefix of this node, or 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 .
| public void | setTextContent(java.lang.String textContent)This attribute returns the text content of this node and its
descendants. When it is defined to be 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:
Node type |
Content |
ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE,
DOCUMENT_FRAGMENT_NODE |
concatenation of the textContent
attribute value of every child node, excluding COMMENT_NODE and
PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the
node has no children. |
TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE,
PROCESSING_INSTRUCTION_NODE |
nodeValue |
DOCUMENT_NODE,
DOCUMENT_TYPE_NODE, NOTATION_NODE |
null |
| public java.lang.Object | setUserData(java.lang.String key, java.lang.Object data, org.w3c.dom.UserDataHandler handler)Associate an object to a key on this node. The object can later be
retrieved from this node by calling getUserData with the
same key.
|
|