TheNode
interface is the primary datatype for the entire Document Object Model. It represents a single node in the document tree. While all objects implementing theNode
interface expose methods for dealing with children, not all objects implementing theNode
interface may have children. For example,Text
nodes may not have children, and adding children to such nodes results in aDOMException
being raised.
The attributesnodeName
,nodeValue
andattributes
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 specificnodeType
(e.g.,nodeValue
for anElement
orattributes
for aComment
), this returnsnull
. Note that the specialized interfaces may contain additional and more convenient mechanisms to get and set the relevant information.
The values ofnodeName
,nodeValue
, andattributes
vary according to the node type as follows:
Interface | nodeName | nodeValue | attributes |
---|---|---|---|
Attr | name of attribute | value of attribute | null |
CDATASection | "#cdata-section" | content of the CDATA Section | null |
Comment | "#comment" | content of the comment | null |
Document | "#document" | null | null |
DocumentFragment | "#document-fragment" | null | null |
DocumentType | document type name | null | null |
Element | tag name | null | NamedNodeMap |
Entity | entity name | null | null |
EntityReference | name of entity referenced | null | null |
Notation | notation name | null | null |
ProcessingInstruction | target | entire content excluding the target | null |
Text | "#text" | content of the text node | null |
See also theDocument Object Model (DOM) Level 2 Core Specification.
ATTRIBUTE_NODE The node is an Attr . | |
CDATA_SECTION_NODE The node is a CDATASection . | |
COMMENT_NODE The node is a Comment . | |
DOCUMENT_FRAGMENT_NODE The node is a DocumentFragment . | |
DOCUMENT_NODE The node is a Document . | |
DOCUMENT_TYPE_NODE The node is a DocumentType . | |
ELEMENT_NODE The node is an Element . | |
ENTITY_NODE The node is an Entity . | |
ENTITY_REFERENCE_NODE The node is an EntityReference . | |
NOTATION_NODE The node is a Notation . | |
PROCESSING_INSTRUCTION_NODE The node is a ProcessingInstruction . | |
TEXT_NODE The node is a Text node. |
appendChild(Node newChild) Adds the node newChild to the end of the list of children of this node. | |
cloneNode(boolean deep) Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. | |
getAttributes() A NamedNodeMap containing the attributes of this node (if it is anElement ) ornull otherwise. | |
getChildNodes() A NodeList that contains all children of this node. | |
getFirstChild() The first child of this node. | |
getLastChild() The last child of this node. | |
getLocalName() Returns the local part of the qualified name of this node. | |
getNamespaceURI() The namespace URI of this node, or null if it is unspecified. | |
getNextSibling() The node immediately following this node. | |
getNodeName() The name of this node, depending on its type; see the table above. | |
getNodeType() A code representing the type of the underlying object, as defined above. | |
getNodeValue() The value of this node, depending on its type; see the table above. | |
getOwnerDocument() The Document object associated with this node. | |
getParentNode() The parent of this node. | |
getPrefix() The namespace prefix of this node, or null if it is unspecified. | |
getPreviousSibling() The node immediately preceding this node. | |
hasAttributes() Returns whether this node (if it is an element) has any attributes. | |
hasChildNodes() Returns whether this node has any children. | |
insertBefore(Node newChild,Node refChild) Inserts the node newChild before the existing child noderefChild . | |
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. | |
normalize() Puts all Text nodes in the full depth of the sub-tree underneath thisNode , including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separatesText nodes, i.e., there are neither adjacentText nodes nor emptyText nodes. | |
removeChild(Node oldChild) Removes the child node indicated by oldChild from the list of children, and returns it. | |
replaceChild(Node newChild,Node oldChild) Replaces the child node oldChild withnewChild in the list of children, and returns theoldChild node. | |
setNodeValue(java.lang.String nodeValue) The value of this node, depending on its type; see the table above. | |
setPrefix(java.lang.String prefix) The namespace prefix of this node, or null if it is unspecified. |
public static final shortELEMENT_NODE
Element
.public static final shortATTRIBUTE_NODE
Attr
.public static final shortTEXT_NODE
Text
node.public static final shortCDATA_SECTION_NODE
CDATASection
.public static final shortENTITY_REFERENCE_NODE
EntityReference
.public static final shortENTITY_NODE
Entity
.public static final shortPROCESSING_INSTRUCTION_NODE
ProcessingInstruction
.public static final shortCOMMENT_NODE
Comment
.public static final shortDOCUMENT_NODE
Document
.public static final shortDOCUMENT_TYPE_NODE
DocumentType
.public static final shortDOCUMENT_FRAGMENT_NODE
DocumentFragment
.public static final shortNOTATION_NODE
Notation
.public java.lang.StringgetNodeName()
public java.lang.StringgetNodeValue() throwsDOMException
null
, setting it has no effect.DOMException
- NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.DOMException
- DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in aDOMString
variable on the implementation platform.public voidsetNodeValue(java.lang.String nodeValue) throwsDOMException
null
, setting it has no effect.DOMException
- NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.DOMException
- DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in aDOMString
variable on the implementation platform.public shortgetNodeType()
publicNodegetParentNode()
Attr
,Document
,DocumentFragment
,Entity
, andNotation
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 isnull
.publicNodeListgetChildNodes()
NodeList
that contains all children of this node. If there are no children, this is aNodeList
containing no nodes.publicNodegetFirstChild()
null
.publicNodegetLastChild()
null
.publicNodegetPreviousSibling()
null
.publicNodegetNextSibling()
null
.publicNamedNodeMapgetAttributes()
NamedNodeMap
containing the attributes of this node (if it is anElement
) ornull
otherwise.publicDocumentgetOwnerDocument()
Document
object associated with this node. This is also theDocument
object used to create new nodes. When this node is aDocument
or aDocumentType
which is not used with anyDocument
yet, this isnull
.publicNodeinsertBefore(Node newChild,Node refChild) throwsDOMException
newChild
before the existing child noderefChild
. IfrefChild
isnull
, insertnewChild
at the end of the list of children.newChild
is aDocumentFragment
object, all of its children are inserted, in the same order, beforerefChild
. If thenewChild
is already in the tree, it is first removed.newChild
- The node to insert.refChild
- The reference node, i.e., the node before which the new node must be inserted.DOMException
- HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of thenewChild
node, or if the node to insert is one of this node's ancestors or this node itself.newChild
was created from a different document than the one that created this node.refChild
is not a child of this node.publicNodereplaceChild(Node newChild,Node oldChild) throwsDOMException
oldChild
withnewChild
in the list of children, and returns theoldChild
node.newChild
is aDocumentFragment
object,oldChild
is replaced by all of theDocumentFragment
children, which are inserted in the same order. If thenewChild
is already in the tree, it is first removed.newChild
- The new node to put in the child list.oldChild
- The node being replaced in the list.DOMException
- HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of thenewChild
node, or if the node to put in is one of this node's ancestors or this node itself.newChild
was created from a different document than the one that created this node.oldChild
is not a child of this node.publicNoderemoveChild(Node oldChild) throwsDOMException
oldChild
from the list of children, and returns it.oldChild
- The node being removed.DOMException
- NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.oldChild
is not a child of this node.publicNodeappendChild(Node newChild) throwsDOMException
newChild
to the end of the list of children of this node. If thenewChild
is already in the tree, it is first removed.newChild
- The node to add.If it is aDocumentFragment
object, the entire contents of the document fragment are moved into the child list of this nodeDOMException
- HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of thenewChild
node, or if the node to append is one of this node's ancestors or this node itself.newChild
was created from a different document than the one that created this node.public booleanhasChildNodes()
true
if this node has any children,false
otherwise.publicNodecloneNode(boolean deep)
parentNode
isnull
.).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 text it contains unless it is a deep clone, since the text is contained in a childText
node. Cloning anAttribute
directly, as opposed to be cloned as part of anElement
cloning operation, returns a specified attribute (specified
istrue
). Cloning any other type of node simply returns a copy of this node.EntityReference
clone are readonly . In addition, clones of unspecifiedAttr
nodes are specified. And, cloningDocument
,DocumentType
,Entity
, andNotation
nodes is implementation dependent.deep
- Iftrue
, recursively clone the subtree under the specified node; iffalse
, clone only the node itself (and its attributes, if it is anElement
).public voidnormalize()
Text
nodes in the full depth of the sub-tree underneath thisNode
, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separatesText
nodes, i.e., there are neither adjacentText
nodes nor emptyText
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 lookups) that depend on a particular document tree structure are to be used.In cases where the document containsCDATASections
, the normalize operation alone may not be sufficient, since XPointers do not differentiate betweenText
nodes andCDATASection
nodes.public booleanisSupported(java.lang.String feature, java.lang.String version)
feature
- The name of the feature to test. This is the same name which can be passed to the methodhasFeature
onDOMImplementation
.version
- This is the version number of the feature to test. In Level 2, version 1, this is the string "2.0". If the version is not specified, supporting any version of the feature will cause the method to returntrue
.true
if the specified feature is supported on this node,false
otherwise.public java.lang.StringgetNamespaceURI()
null
if it is unspecified.ELEMENT_NODE
andATTRIBUTE_NODE
and nodes created with a DOM Level 1 method, such ascreateElement
from theDocument
interface, this is alwaysnull
.Per the Namespaces in XML Specification 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 java.lang.StringgetPrefix()
null
if it is unspecified.nodeName
attribute, which holds the qualified name, as well as thetagName
andname
attributes of theElement
andAttr
interfaces, when applicable.namespaceURI
andlocalName
do not change.ELEMENT_NODE
andATTRIBUTE_NODE
and nodes created with a DOM Level 1 method, such ascreateElement
from theDocument
interface, this is alwaysnull
.DOMException
- INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character, per the XML 1.0 specification .prefix
is malformed per the Namespaces in XML specification, if thenamespaceURI
of this node isnull
, if the specified prefix is "xml" and thenamespaceURI
of this node is different from "http://www.w3.org/XML/1998/namespace", if this node is an attribute and the specified prefix is "xmlns" and thenamespaceURI
of this node is different from " http://www.w3.org/2000/xmlns/", or if this node is an attribute and thequalifiedName
of this node is "xmlns" .public voidsetPrefix(java.lang.String prefix) throwsDOMException
null
if it is unspecified.nodeName
attribute, which holds the qualified name, as well as thetagName
andname
attributes of theElement
andAttr
interfaces, when applicable.namespaceURI
andlocalName
do not change.ELEMENT_NODE
andATTRIBUTE_NODE
and nodes created with a DOM Level 1 method, such ascreateElement
from theDocument
interface, this is alwaysnull
.DOMException
- INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character, per the XML 1.0 specification .prefix
is malformed per the Namespaces in XML specification, if thenamespaceURI
of this node isnull
, if the specified prefix is "xml" and thenamespaceURI
of this node is different from "http://www.w3.org/XML/1998/namespace", if this node is an attribute and the specified prefix is "xmlns" and thenamespaceURI
of this node is different from " http://www.w3.org/2000/xmlns/", or if this node is an attribute and thequalifiedName
of this node is "xmlns" .public java.lang.StringgetLocalName()
ELEMENT_NODE
andATTRIBUTE_NODE
and nodes created with a DOM Level 1 method, such ascreateElement
from theDocument
interface, this is alwaysnull
.public booleanhasAttributes()
true
if this node has any attributes,false
otherwise.