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
。