org.w3c.dom

接口
异常
所有已知子接口:
Attr, CDATASection, CharacterData, Comment, Detail, DetailEntry, Document, DocumentFragment, DocumentType, Element, Entity, EntityReference, Node, Notation, ProcessingInstruction, SOAPBody, SOAPBodyElement, SOAPElement, SOAPEnvelope, SOAPFault, SOAPFaultElement, SOAPHeader, SOAPHeaderElement, Text, Text
所有已知实现类:
IIOMetadataNode, SOAPPart

public interface Node

Node 接口是整个文档对象模型的主要数据类型。它表示该文档树中的单个节点。当实现 Node 接口的所有对象公开处理子节点的方法时,不是实现 Node 接口的所有对象都有子节点。例如,Text 节点可能没有子节点,且将子节点添加到这样的节点将导致引发 DOMException

包括属性 nodeNamenodeValueattributes 作为一种获取节点信息的机制,无需向下强制转换为特定的派生接口。在没有对特定的 nodeType(如 ElementnodeValueCommentattributes)的属性的明显映射的情况下,这将返回 null。注意,特定的接口可能包含其他更方便的机制来获取和设置相关信息。

nodeNamenodeValueattributes 的值将根据以下节点类型的不同而不同。

Interface nodeName nodeValue attributes
Attr Attr.name 相同 Attr.value 相同 null
CDATASection "#cdata-section" CharacterData.data 相同,CDATA 节的内容 null
Comment "#comment" CharacterData.data 相同,该注释的内容 null
Document "#document" null null
DocumentFragment "#document-fragment" null null
DocumentType DocumentType.name 相同 null null
Element Element.tagName 相同 null NamedNodeMap
Entity entity name null null
EntityReference 引用的实体名称 null null
Notation notation name null null
ProcessingInstruction ProcessingInstruction.target 相同 ProcessingInstruction.data 相同 null
Text "#text" CharacterData.data 相同,该文本节点的内容 null

另请参见 Document Object Model (DOM) Level 3 Core Specification


字段摘要
static short ATTRIBUTE_NODE
          该节点为 Attr
static short CDATA_SECTION_NODE
          该节点为 CDATASection
static short COMMENT_NODE
          该节点为 Comment
static short DOCUMENT_FRAGMENT_NODE
          该节点为 DocumentFragment
static short DOCUMENT_NODE
          该节点为 Document
static short DOCUMENT_POSITION_CONTAINED_BY
          引用节点包含该节点。
static short DOCUMENT_POSITION_CONTAINS
          该节点包含引用节点。
static short DOCUMENT_POSITION_DISCONNECTED
          两个节点断开连接。
static short DOCUMENT_POSITION_FOLLOWING
          该节点在引用节点之后。
static short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
          对前后位置的确定是特定于实现的。
static short DOCUMENT_POSITION_PRECEDING
          第二个节点在引用节点之前。
static short DOCUMENT_TYPE_NODE
          该节点为 DocumentType
static short ELEMENT_NODE
          该节点为 Element
static short ENTITY_NODE
          该节点为 Entity
static short ENTITY_REFERENCE_NODE
          该节点为 EntityReference
static short NOTATION_NODE
          该节点为 Notation
static short PROCESSING_INSTRUCTION_NODE
          该节点为 ProcessingInstruction
static short TEXT_NODE
          该节点为 Text 节点。
 
方法摘要
 Node appendChild(Node newChild)
          将节点 newChild 添加到此节点的子节点列表的末尾。
 Node cloneNode(boolean deep)
          返回此节点的副本,即允当节点的一般复制构造方法。
 short compareDocumentPosition(Node other)
          就节点在文档中的位置并按照文档的顺序,比较引用节点(即在其上调用此方法的节点)与作为参数传递的节点。
 NamedNodeMap getAttributes()
          包含此节点的属性的 NamedNodeMap(如果它是 Element);否则为 null
 String getBaseURI()
          此节点的绝对基 URI;如果实现不能获得绝对 URI,则为 null
 NodeList getChildNodes()
          包含此节点的所有子节点的 NodeList
 Object getFeature(String feature, String version)
          此方法返回一个特定的对象,该对象实现指定功能或版本的特定 API,如下所述。
 Node getFirstChild()
          此节点的第一个子节点。
 Node getLastChild()
          此节点的最后一个节点。
 String getLocalName()
          返回此节点限定名称的本地部分。
 String getNamespaceURI()
          此节点的名称空间 URI;如果它未被指定,则返回 null(参见)。
 Node getNextSibling()
          直接在此节点之后的节点。
 String getNodeName()
          此节点的名称,取决于其类型;参见上表。
 short getNodeType()
          表示基础对象的类型的节点,如上所述。
 String getNodeValue()
          此节点的值,取决于其类型;参见上表。
 Document getOwnerDocument()
          与此节点相关的 Document 对象。
 Node getParentNode()
          此节点的父节点。
 String getPrefix()
          此节点的名称空间前缀;如果它未被指定,则为 null
 Node getPreviousSibling()
          直接在此节点之前的节点。
 String getTextContent()
          此属性返回此节点及其后代的文本内容。
 Object getUserData(String key)
          检索与此节点上的某个键相关联的对象。
 boolean hasAttributes()
          返回此节点(如果它是一个元素)是否具有任何属性。
 boolean hasChildNodes()
          返回此节点是否具有任何子节点。
 Node insertBefore(Node newChild, Node refChild)
          在现有子节点 refChild 之前插入节点 newChild
 boolean isDefaultNamespace(String namespaceURI)
          此方法检查指定的 namespaceURI 是否是默认名称空间。
 boolean isEqualNode(Node arg)
          测试两个节点是否相等。
 boolean isSameNode(Node other)
          返回此节点是否是与给定节点相同的节点。
 boolean isSupported(String feature, String version)
          测试 DOM 实现是否实现特定功能,且该功能是否受此节点支持,如下所述。
 String lookupNamespaceURI(String prefix)
          从此节点开始,查找与给定前缀相关的名称空间 URI。
 String lookupPrefix(String namespaceURI)
          从此节点开始,查找与给定名称空间 URI 相关的前缀。
 void normalize()
          将此 Node 之下完整的深层子树中所有 Text 节点(包括属性节点)放入只有结构(如元素、注释、处理指令、CDATA 节和实体引用)分隔 Text 节点的“常规”形式,也就是说,既没有相邻的 Text 节点,也没有空 Text 节点。
 Node removeChild(Node oldChild)
          从子节点列表中移除 oldChild 所指示的子节点,并将其返回。
 Node replaceChild(Node newChild, Node oldChild)
          将子节点列表中的子节点 oldChild 替换为 newChild,并返回 oldChild 节点。
 void setNodeValue(String nodeValue)
          此节点的值,取决于其类型;参见上表。
 void setPrefix(String prefix)
          此节点的名称空间前缀;如果未指定,则为 null
 void setTextContent(String textContent)
          此属性返回此节点及其后代的文本内容。
 Object setUserData(String key, Object data, UserDataHandler handler)
          将对象与此节点上的键相关联。
 

字段详细信息

ELEMENT_NODE

static final short ELEMENT_NODE
该节点为 Element

另请参见:
常量字段值

ATTRIBUTE_NODE

static final short ATTRIBUTE_NODE
该节点为 Attr

另请参见:
常量字段值

TEXT_NODE

static final short TEXT_NODE
该节点为 Text 节点。

另请参见:
常量字段值

CDATA_SECTION_NODE

static final short CDATA_SECTION_NODE
该节点为 CDATASection

另请参见:
常量字段值

ENTITY_REFERENCE_NODE

static final short ENTITY_REFERENCE_NODE
该节点为 EntityReference

另请参见:
常量字段值

ENTITY_NODE

static final short ENTITY_NODE
该节点为 Entity

另请参见:
常量字段值

PROCESSING_INSTRUCTION_NODE

static final short PROCESSING_INSTRUCTION_NODE
该节点为 ProcessingInstruction

另请参见:
常量字段值

COMMENT_NODE

static final short COMMENT_NODE
该节点为 Comment

另请参见:
常量字段值

DOCUMENT_NODE

static final short DOCUMENT_NODE
该节点为 Document

另请参见:
常量字段值

DOCUMENT_TYPE_NODE

static final short DOCUMENT_TYPE_NODE
该节点为 DocumentType

另请参见:
常量字段值

DOCUMENT_FRAGMENT_NODE

static final short DOCUMENT_FRAGMENT_NODE
该节点为 DocumentFragment

另请参见:
常量字段值

NOTATION_NODE

static final short NOTATION_NODE
该节点为 Notation

另请参见:
常量字段值

DOCUMENT_POSITION_DISCONNECTED

static final short DOCUMENT_POSITION_DISCONNECTED
两个节点断开连接。断开连接的节点之间的顺序始终特定于实现。

另请参见:
常量字段值

DOCUMENT_POSITION_PRECEDING

static final short DOCUMENT_POSITION_PRECEDING
第二个节点在引用节点之前。

另请参见:
常量字段值

DOCUMENT_POSITION_FOLLOWING

static final short DOCUMENT_POSITION_FOLLOWING
该节点在引用节点之后。

另请参见:
常量字段值

DOCUMENT_POSITION_CONTAINS

static final short DOCUMENT_POSITION_CONTAINS
该节点包含引用节点。包含的节点也总是在前面。

另请参见:
常量字段值

DOCUMENT_POSITION_CONTAINED_BY

static final short DOCUMENT_POSITION_CONTAINED_BY
引用节点包含该节点。包含的节点也总是在后面。

另请参见:
常量字段值

DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC

static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
对前后位置的确定是特定于实现的。

另请参见:
常量字段值
方法详细信息

getNodeName

String getNodeName()
此节点的名称,取决于其类型;参见上表。


getNodeValue

String getNodeValue()
                    throws DOMException
此节点的值,取决于其类型;参见上表。当将它定义为 null 时,设置它无效,包括节点为只读的情况。

抛出:
DOMException - DOMSTRING_SIZE_ERR: 在它返回的字符多于实现平台上 DOMString 变量中适合的字符时引发此异常。

setNodeValue

void setNodeValue(String nodeValue)
                  throws DOMException
此节点的值,取决于其类型;参见上表。当将它定义为 null 时,设置它无效,包括节点为只读的情况。

抛出:
DOMException - NO_MODIFICATION_ALLOWED_ERR: 当节点为只读且未将它定义为 null 时引发此异常。

getNodeType

short getNodeType()
表示基础对象的类型的节点,如上所述。


getParentNode

Node getParentNode()
此节点的父节点。所有节点(除 AttrDocumentDocumentFragmentEntityNotation)都可以有父节点。但是,如果刚创建节点且尚未添加到树,或如果已经从树中移除了它,此值为 null


getChildNodes

NodeList getChildNodes()
包含此节点的所有子节点的 NodeList。如果不存在子节点,则这是不包含节点的 NodeList


getFirstChild

Node getFirstChild()
此节点的第一个子节点。如果没有这样的节点,则返回 null


getLastChild

Node getLastChild()
此节点的最后一个节点。如果没有这样的节点,则返回 null


getPreviousSibling

Node getPreviousSibling()
直接在此节点之前的节点。如果没有这样的节点,则返回 null


getNextSibling

Node getNextSibling()
直接在此节点之后的节点。如果没有这样的节点,则返回 null


getAttributes

NamedNodeMap getAttributes()
包含此节点的属性的 NamedNodeMap(如果它是 Element);否则为 null


getOwnerDocument

Document getOwnerDocument()
与此节点相关的 Document 对象。这也是用于创建新节点的 Document 对象。当此节点为 Document 或未与任何 Document 一起使用的 DocumentType 时,返回 null

从以下版本开始:
DOM Level 2

insertBefore

Node insertBefore(Node newChild,
                  Node refChild)
                  throws DOMException
在现有子节点 refChild 之前插入节点 newChild。如果 refChildnull,则将 newChild 插入到子节点列表的末尾。
如果 newChildDocumentFragment 对象,则以同样的顺序将其所有节点插入 refChild 之前。如果 newChild 已经存在于树中,则首先移除它。

注:将一个节点插入本身之前与实现有关。

参数:
newChild - 要插入的节点。
refChild - 引用节点,即必须在其前插入新节点的节点。
返回:
要插入的节点。
抛出:
DOMException - HIERARCHY_REQUEST_ERR:在以下情况下引发此异常:如果此节点为不允许 newChild 节点类型的子节点的类型;或者如果要插入的节点为此节点的一个祖先或此节点本身;或者如果此节点为 Document 类型且 DOM 应用程序试图插入第二个 DocumentTypeElement 节点。
WRONG_DOCUMENT_ERR:如果 newChild 是从不同的文档创建的,不是从创建此节点的文档创建的,则引发此异常。
NO_MODIFICATION_ALLOWED_ERR:如果此节点为只读的,或者如果要插入的节点的父节点为只读的,则引发此异常。
NOT_FOUND_ERR: 如果 refChild 不是此节点的子节点。
NOT_SUPPORTED_ERR: 如果此节点为 Document 类型,如果 DOM 实现不支持插入 DocumentTypeElement 节点,则可能引发此异常。
从以下版本开始:
DOM Level 3

replaceChild

Node replaceChild(Node newChild,
                  Node oldChild)
                  throws DOMException
将子节点列表中的子节点 oldChild 替换为 newChild,并返回 oldChild 节点。
如果 newChildDocumentFragment 对象,则将 oldChild 替换为所有 DocumentFragment 子节点,它们都以相同的顺序插入。如果 newChild 已经存在于树中,则首先移除它。

注:将节点替换为它本身与实现有关。

参数:
newChild - 要在子节点列表中放入的新节点。
oldChild - 列表中被替换的节点。
返回:
替换的节点。
抛出:
DOMException - HIERARCHY_REQUEST_ERR: 在以下情况下引发此异常:如果此节点为不允许 newChild 节点类型的子节点的类型;或者如果要放入的节点为此节点的一个祖先或此节点本身;或者如果此节点为 Document 类型且替换操作的结果将第二个 DocumentTypeElement 添加到 Document 上。
WRONG_DOCUMENT_ERR: 如果 newChild 是从不同的文档创建的,不是从创建此节点的文档创建的,则引发此异常。
NO_MODIFICATION_ALLOWED_ERR: 如果此节点或新节点的父节点为只读的,则引发此异常。
NOT_FOUND_ERR: 如果 oldChild 不是此节点的子节点,则引发此异常。
NOT_SUPPORTED_ERR: 如果此节点为 Document 类型,则如果 DOM 实现不支持替换 DocumentType 子节点或 Element 子节点,则可能引发此异常。
从以下版本开始:
DOM Level 3

removeChild

Node removeChild(Node oldChild)
                 throws DOMException
从子节点列表中移除 oldChild 所指示的子节点,并将其返回。

参数:
oldChild - 移除的节点。
返回:
移除的节点。
抛出:
DOMException - NO_MODIFICATION_ALLOWED_ERR: 如果此节点为只读的,则引发此异常。
NOT_FOUND_ERR: 如果 oldChild 不是此节点的子节点。
NOT_SUPPORTED_ERR: 如果此节点为 Document 类型,则如果 DOM 实现不支持移除 DocumentType 子节点或 Element 子节点,则可能引发此异常。
从以下版本开始:
DOM Level 3

appendChild

Node appendChild(Node newChild)
                 throws DOMException
将节点 newChild 添加到此节点的子节点列表的末尾。如果 newChild 已经存在于树中,则首先移除它。

参数:
newChild - 要添加的节点。如果它是 DocumentFragment 对象,则将文档片段的整个内容移动到此节点的子列表中
返回:
添加的节点。
抛出:
DOMException - HIERARCHY_REQUEST_ERR: 在以下情况下引发此异常:如果此节点为不允许 newChild 节点类型的子节点的类型;或者如果要追加的节点为此节点的一个祖先或此节点本身;或者如果此节点为 Document 类型且 DOM 应用程序试图追加第二个 DocumentTypeElement 节点。
WRONG_DOCUMENT_ERR: 如果 newChild 是从不同的文档创建的,不是从创建此节点的文档创建的,则引发此异常。
NO_MODIFICATION_ALLOWED_ERR:如果此节点为只读的,或者如果要插入的节点以前的父节点为只读的,则引发此异常。
NOT_SUPPORTED_ERR: 如果 newChild 节点为 Document 节点的子节点,则如果 DOM 实现不支持移除 DocumentType 子节点或 Element 子节点,则可能引发此异常。
从以下版本开始:
DOM Level 3

hasChildNodes

boolean hasChildNodes()
返回此节点是否具有任何子节点。

返回:
如果此节点没有任何子节点,则返回 true;否则返回 false

cloneNode

Node cloneNode(boolean deep)
返回此节点的副本,即允当节点的一般复制构造方法。副本节点没有父节点( parentNodenull),且没有用户数据。与导入的节点相关的用户数据不携带过来。但是,如果随相关数据一起指定了任何 UserDataHandlers,则将在此方法返回之前用适当的参数调用这些处理程序。
克隆一个 Element 将复制所有属性及其值,包括由 XML 处理器生成的用来表示默认属性的那些属性和值,但此方法不复制它包含的任何子节点,除非它是一个深层克隆。这包括此 Element 所包含的文本,因为该文本包含在子 Text 节点中。直接克隆 Attr(相对于作为 Element 克隆操作的一部分进行的克隆)将返回指定的属性( specifiedtrue)。克隆一个 Attr 总是要克隆其子节点,因为它们表示其值,不管这是否是深层克隆。如果相应的 Entity 可用,则克隆 EntityReference 将自动构造其子树,不管这是否是深层克隆。克隆任何其他类型的节点只返回此节点的副本。
注意,克隆一个不可变子树会导致可变副本,但 EntityReference 克隆的子节点应为只读的。此外,还要指定未指定的 Attr 节点的克隆。并且,克隆 DocumentDocumentTypeEntityNotation 节点与实现有关。

参数:
deep - 如果为 true,则在指定节点下递归式克隆子树;如果为 false,则仅克隆节点本身(及其属性,如果它是 Element)。
返回:
副本节点。

normalize

void normalize()
将此 Node 之下完整的深层子树中所有 Text 节点(包括属性节点)放入只有结构(如元素、注释、处理指令、CDATA 节和实体引用)分隔 Text 节点的“常规”形式,也就是说,既没有相邻的 Text 节点,也没有空 Text 节点。这可以用于确保一个文档的 DOM 视图相同,好像它是保存和重新加载的一样,并且在使用依赖特定文档树结构的操作(如 XPointer [ XPointer] 查询)时此方法非常有用。如果连接到 Node.ownerDocumentDOMConfiguration 对象的参数 "normalize-characters" 为 true,则此方法还将完全标准化 Text 节点的字符。

注:在文档包含 CDATASections 的情况下,单独的标准化操作可能不充分,因为 XPointer 不区分 Text 节点和 CDATASection 节点。

从以下版本开始:
DOM Level 3