public interface Node
Node接口是整个文档对象模型的主数据类型。
它表示文档树中的单个节点。
虽然实现Node接口的所有对象都公开了处理子对象的方法,但并不是所有实现Node接口的Node都可能有子节点。
例如, Text节点可能没有子节点,并且向这些节点添加子节点导致DOMException被引发。
属性nodeName , nodeValue和attributes包括作为一种机制来获取节点信息,而无需拆毁到特定的派生接口。 如果对于特定的nodeType (例如, nodeValue的Element或attributes的Comment )没有明确的映射,则返回null 。 请注意,专用接口可能包含附加和更方便的机制来获取和设置相关信息。
的值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
| Modifier and Type | Field and Description |
|---|---|
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节点。
|
| Modifier and Type | Method and Description |
|---|---|
Node |
appendChild(Node newChild)
将节点
newChild添加到此节点的子节点列表的末尾。
|
Node |
cloneNode(boolean deep)
返回此节点的副本,即,作为节点的通用拷贝构造函数。
|
short |
compareDocumentPosition(Node other)
比较参考节点,即
|
NamedNodeMap |
getAttributes()
A
NamedNodeMap包含此节点的属性(如果是
Element )或
null否则。
|
String |
getBaseURI()
该节点的绝对基本URI或
null如果实现无法获取绝对URI。
|
NodeList |
getChildNodes()
A
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指定,则为null。
|
Node |
getPreviousSibling()
紧邻节点之前的节点。
|
String |
getTextContent()
此属性返回此节点及其后代的文本内容。
|
Object |
getUserData(String key)
检索与该节点上的键相关联的对象。
|
boolean |
hasAttributes()
返回此节点(如果它是一个元素)是否具有任何属性。
|
boolean |
hasChildNodes()
返回此节点是否有任何子节点。
|
Node |
insertBefore(Node newChild, Node refChild)
插入节点
newChild现有的子节点之前
refChild 。
|
boolean |
isDefaultNamespace(String namespaceURI)
此方法检查指定的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()
将所有
Text节点的子树的全部深度此下方
Node ,包括属性节点,成“正常”的形式,其中仅结构(例如,元素,注释,处理指令,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指定,则为null。
|
void |
setTextContent(String textContent)
此属性返回此节点及其后代的文本内容。
|
Object |
setUserData(String key, Object data, UserDataHandler handler)
将对象与此节点上的键相关联。
|
static final short ELEMENT_NODE
Element 。
static final short ATTRIBUTE_NODE
Attr 。
static final short TEXT_NODE
Text节点。
static final short CDATA_SECTION_NODE
CDATASection 。
static final short ENTITY_REFERENCE_NODE
EntityReference 。
static final short ENTITY_NODE
Entity 。
static final short PROCESSING_INSTRUCTION_NODE
ProcessingInstruction 。
static final short COMMENT_NODE
Comment 。
static final short DOCUMENT_NODE
Document 。
static final short DOCUMENT_TYPE_NODE
DocumentType 。
static final short DOCUMENT_FRAGMENT_NODE
DocumentFragment 。
static final short NOTATION_NODE
Notation 。
static final short DOCUMENT_POSITION_DISCONNECTED
static final short DOCUMENT_POSITION_PRECEDING
static final short DOCUMENT_POSITION_FOLLOWING
static final short DOCUMENT_POSITION_CONTAINS
static final short DOCUMENT_POSITION_CONTAINED_BY
static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
String getNodeName()
String getNodeValue() throws DOMException
null时,设置它不起作用,包括如果节点是只读的。
DOMException - DOMSTRING_SIZE_ERR:募集时,将在一个不是适合返回多个字符
DOMString变量实现平台上。
void setNodeValue(String nodeValue) throws DOMException
null时,设置它不起作用,包括如果节点是只读的。
DOMException - NO_MODIFICATION_ALLOWED_ERR:当节点只读时提升,如果没有定义为
null 。
short getNodeType()
Node getParentNode()
Attr , Document , DocumentFragment , Entity和Notation可以有父。
但是,如果一个节点刚刚创建但尚未添加到树中,或者如果已从树中删除,则为null 。
NodeList getChildNodes()
NodeList包含此节点的所有子节点。
如果没有孩子,这是一个没有节点的NodeList 。
Node getFirstChild()
null 。
Node getLastChild()
null 。
Node getPreviousSibling()
null 。
Node getNextSibling()
null 。
NamedNodeMap getAttributes()
NamedNodeMap包含该节点的属性(如果是
Element )或
null否则。
Document getOwnerDocument()
Document对象。
这也是用于创建新节点的Document对象。
当这个节点是一个Document或DocumentType ,它不与任何Document一起使用,这是null 。
Node insertBefore(Node newChild, Node refChild) throws DOMException
newChild现有的子节点之前refChild 。
如果refChild是null ,在子列表的末尾插入newChild 。
newChild是一个DocumentFragment对象,则其所有子项以refChild之前的顺序插入。
如果newChild已经在树中,它首先被删除。
注意:在本身之前插入节点是依赖于实现的。
newChild - 要插入的节点。
refChild - 参考节点,即必须插入新节点之前的节点。
DOMException - HIERARCHY_REQUEST_ERR:如果此节点的类型不允许newChild节点的类型的newChild节点,或者插入的节点是该节点的祖先或该节点本身之一,或者如果此节点的类型为Document并且DOM应用程序尝试插入第二个DocumentType或Element节点。
newChild是从与创建此节点的文档不同的文档创建的。
refChild不是此节点的子节点,则引发。
Document ,如果DOM实现不支持插入DocumentType或Element节点,则可能会引发此异常。
Node replaceChild(Node newChild, Node oldChild) throws DOMException
oldChild与newChild儿童的名单,并返回oldChild节点。
newChild是DocumentFragment对象, oldChild被所有DocumentFragment子代替,它们以相同的顺序插入。
如果newChild已经在树中,则首先被删除。
注意:用自己替换节点是依赖于实现的。
newChild - 放入子列表的新节点。
oldChild - 列表中被替换的节点。
DOMException - HIERARCHY_REQUEST_ERR:如果此节点的类型不允许newChild节点类型的newChild节点,或者放入的节点是该节点的祖先或该节点本身之一,或者如果此节点类型为Document和Document的结果将在Document节点上添加第二个DocumentType或Element 。
newChild是从与创建此节点的文档不同的文档创建的。
oldChild不是此节点的子节点,则引发。
Document ,如果DOM实现不支持替换DocumentType子Element或Element子节点,则可能会引发此异常。
Node removeChild(Node oldChild) throws DOMException
oldChild儿童的名单,并将其返回。
oldChild - 正在删除的节点。
DOMException - NO_MODIFICATION_ALLOWED_ERR:如果此节点是只读的,则提升。
oldChild不是此节点的子节点,则引发。
Document ,则如果DOM实现不支持删除DocumentType子DocumentType或Element子节点,则可能会引发此异常。
Node appendChild(Node newChild) throws DOMException
newChild添加到此节点的子节点列表的末尾。
如果newChild已经在树中,那么它首先被删除。
newChild - 要添加的节点。如果它是一个
DocumentFragment对象,则文档片段的全部内容将被移动到此节点的子列表中
DOMException - HIERARCHY_REQUEST_ERR:如果此节点的类型不允许newChild节点的类型的newChild节点,或者如果要附加的节点是此节点的祖先或此节点本身之一,或者如果此节点的类型为Document并且DOM应用程序尝试附加第二个DocumentType或Element节点。
newChild是从与创建此节点的文档不同的文档创建的。
newChild节点是一个子Document节点,此异常可能,如果DOM实现不支持取消的提出DocumentType儿童或Element孩子。
boolean hasChildNodes()
true如果该节点的任何孩子,
false其他。
Node cloneNode(boolean deep)
parentNode是null ),没有用户数据。
与导入的节点关联的用户数据不会被转移。
但是,如果任何UserDataHandlers已经与相关数据指定沿着这些处理器将与该方法返回之前适当的参数调用。
Element复制所有属性及其值,包括由XML处理器生成的代表默认属性的值,但是该方法不会复制其包含的任何子代,除非它是深层克隆。
这包括包含在文本Element ,因为该文本包含在子Text节点。
直接克隆Attr ,而不是克隆作为Element克隆操作的一部分,返回一个指定的属性( specified是true )。
克隆一个Attr总是克隆它的孩子,因为它们代表它的价值,无论这是否是一个深克隆。
如果相应的Entity可用,克隆EntityReference自动构建其子树,无论这是否是深克隆。
克隆任何其他类型的节点只需返回此节点的副本。
EntityReference克隆的EntityReference是只读的。
此外,还指定了未Attr节点的克隆。
而且,克隆Document , DocumentType , Entity和Notation节点实现有关。
deep - 如果true ,递归地克隆指定节点下的子树;
如果false ,只克隆节点本身(和它的属性,如果它是一个Element )。
void normalize()
Text节点的子树的全部深度此下方Node ,包括属性节点,成“正常”的形式,其中仅结构(例如,元素,注释,处理指令,CDATA部分和实体引用)分隔Text节点即,既没有相邻的Text节点也没有空的Text节点。
这可以用于确保文档的DOM视图与保存和重新加载的DOM视图相同,并且在依赖于特定文档树结构的操作(如XPointer [ XPointer ]查找)时是有用的)使用。
如果的参数“正常化字符” DOMConfiguration附着在物体Node.ownerDocument是true ,这种方法也将完全正常化的字符Text节点。
注意:如果文档包含CDATASections ,则归一化操作本身可能不够,因为XPointers不区分Text节点和CDATASection节点。
boolean isSupported(String feature, String version)
feature - 要测试的功能的名称。
version - 这是要测试的功能的版本号。
false指定的功能,则返回
true否则返回885634321113。
String getNamespaceURI()
null指定,则为null(请参阅)。
ELEMENT_NODE和ATTRIBUTE_NODE以外的任何类型的节点以及使用DOM Level 1方法(如Document.createElement()创建的节点,这一直是null 。
注意:根据XML规范[ XML Namespaces ]中的命名空间,属性不会从其附加的元素继承其命名空间。 如果一个属性没有明确给出一个命名空间,它根本就没有命名空间。
String getPrefix()
null指定,则为null。
当它被定义为null时,设置它不起作用,包括如果节点是只读的。
nodeName属性(其中包含限定名称)以及tagName和name接口的Element和Attr属性(如适用)。
null使其未指定,将其设置为空字符串是依赖于实现的。
namespaceURI和localName不会更改。
ELEMENT_NODE和ATTRIBUTE_NODE之外的任何类型的节点以及使用DOM Level 1方法(例如createElement的Document创建的节点,始终为null 。
void setPrefix(String prefix) throws DOMException
null指定,则为null。
当它被定义为null时,设置它不起作用,包括如果节点是只读的。
nodeName属性,其持有的合格的名称,以及该tagName个name的属性Element个Attr接口,适用时。
null使其未指定,将其设置为空字符串是依赖于实现的。
namespaceURI和localName不会更改。
ELEMENT_NODE和ATTRIBUTE_NODE以外的任何类型的节点以及使用DOM Level 1方法创建的节点(例如createElement Document createElement),这一直是null 。
DOMException - INVALID_CHARACTER_ERR:如果指定的前缀包含根据指定使用的XML版本的非法字符募集Document.xmlVersion属性。
prefix每在XML规范中的命名空间畸形,如果namespaceURI此节点的是null时,如果指定的前缀为“xml”和namespaceURI该节点的距离“不同http://www.w3.org/XML/1998/namespace ”,如果这个节点是的属性和指定的前缀为“xmlns”和namespaceURI该节点的距离“不同http://www.w3.org/2000/xmlns/ ”,或者如果该节点是一个属性和qualifiedName此节点的为“xmlns” [ XML Namespaces ]。
String getLocalName()
ELEMENT_NODE和ATTRIBUTE_NODE之外的任何类型的节点以及使用DOM Level 1方法(如Document.createElement()创建的节点,这一直是null 。
boolean hasAttributes()
true如果此节点具有任何属性,
false其他。
String getBaseURI()
null如果实现无法获取绝对URI。
该值按照如下所述计算。
但是,当Document支持特征“HTML”[ DOM Level 2 HTML ]时,首先使用HTML BASE元素的href属性的值(如果有的话)计算基本URI,否则从documentURI接口获得Document属性的值。
short compareDocumentPosition(Node other) throws DOMException
other - 与参考节点进行比较的节点。
DOMException - NOT_SUPPORTED_ERR:当比较的节点来自不协调以返回一致的实现特定结果的不同DOM实现时。
String getTextContent() throws DOMException
null时,设置它不起作用。
在设置时,可以删除此节点可能存在的任何可能的子节点,如果新字符串不为空,或null替换为包含此属性设置的字符串的单个Text节点。
Text.isElementContentWhitespace )。
类似地,在设置时,也不执行解析,输入字符串被视为纯文本内容。
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
DOMException - DOMSTRING_SIZE_ERR:募集时,将在一个不是适合返回多个字符
DOMString变量实现平台上。
void setTextContent(String textContent) throws DOMException
null时,设置它不起作用。
在设置时,可以删除此节点可能存在的任何可能的子节点,如果新字符串不为空,或null替换为包含此属性设置的字符串的单个Text节点。
Text.isElementContentWhitespace )。
类似地,在设置时,也不执行解析,输入字符串被视为纯文本内容。
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
DOMException - NO_MODIFICATION_ALLOWED_ERR:当节点只读时引发。
boolean isSameNode(Node other)
Node引用返回的两个Node引用是否相同。
当两个Node引用引用同一对象时,即使通过代理,引用也可以完全互换使用,因此所有属性都具有相同的值,并且对任一引用调用相同的DOM方法始终具有完全相同的效果。
other - 要测试的节点。
true如果节点是相同的,
false其他。
String lookupPrefix(String namespaceURI)
namespaceURI - 要查找的命名空间URI。
null如果没有被发现。
如果多个前缀与命名空间前缀相关联,则返回的命名空间前缀取决于实现。
boolean isDefaultNamespace(String namespaceURI)
namespaceURI是默认命名空间。
namespaceURI - 要查找的命名空间URI。
true如果指定的
namespaceURI是默认的命名空间,
false其他。
String lookupNamespaceURI(String prefix)
prefix - 要查找的前缀。
如果此参数为null ,则该方法将返回默认名称空间URI(如果有)。
null 。
boolean isEqualNode(Node arg)
Node.isSameNode()进行测试。
所有相同的节点也是相等的,尽管相反可能不是真的。
nodeName , localName , namespaceURI , prefix , nodeValue 。 这是:它们都是null ,或者它们具有相同的长度,并且是字符相同的字符。 attributes NamedNodeMaps是相等的。 这是:它们都是null ,或者它们具有相同的长度,并且对于存在于一个映射中的每个节点,存在存在于另一个映射中的并且相等的节点,尽管不一定在相同的索引。 childNodes NodeLists是相等的。 这是:它们都是null ,或者它们具有相同的长度并且在同一索引处包含相等的节点。 注意归一化可以影响平等; 为了避免这种情况,节点在进行比较之前应该被归一化。 DocumentType节点相等,也必须满足以下条件:
publicId , systemId , internalSubset 。 entities NamedNodeMaps是相等的。 notations NamedNodeMaps是相等的。 ownerDocument , baseURI和parentNode属性,则specified属性为Attr节点上, schemaTypeInfo属性为Attr个Element节点上, Text.isElementContentWhitespace属性为Text节点,以及任何用户数据或在节点上注册的事件监听器。
注意:作为一般规则,上述说明中未提及的任何事项在考虑平等检查时并不重要。 请注意,本规范的未来版本可能会考虑到更多属性,并且预期相应地更新符合本规范的实现。
arg - 用于比较平等的节点。
true如果节点相等,
false其他。
Object getFeature(String feature, String version)
Node接口的Node对象。
feature - feature的功能的名称。
请注意,功能名称之前的任何加号“+”将被忽略,因为在此方法的上下文中不重要。
version - 这是要测试的功能的版本号。
null如果没有对象实现与该功能相关的接口。
如果DOMObject此方法返回实现Node接口,它必须委托给主芯Node和不返回结果不一致与主芯Node如属性,子节点,等等
Object setUserData(String key, Object data, UserDataHandler handler)
getUserData从该节点检索对象。
key - 将对象关联到的关键。
data - 与给定键相关
data的对象,或
null删除与该键的任何现有关联。
handler - 与该密钥
handler的处理程序,或
null 。
null如果没有,则返回
DOMUserData 。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.