|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
public interface Node
该 Node
接口是整个文档对象模型的主要数据类型。它表示该文档树中的单个节点。当实现 Node
接口的所有对象公开处理子节点的方法时,不是实现 Node
接口的所有对象都有子节点。例如,Text
节点可能没有子节点,且将子节点添加到这样的节点将导致引发 DOMException
。
包括属性 nodeName
、nodeValue
和 attributes
作为一种获取节点信息的机制,无需向下强制转换为特定的派生接口。在没有对特定的 nodeType
(如 Element
的 nodeValue
或 Comment
的 attributes
)的属性的明显映射的情况下,这将返回 null
。注意,特定的接口可能包含其他更方便的机制来获取和设置相关信息。
nodeName
、nodeValue
和 attributes
的值将根据以下节点类型的不同而不同。
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) 将对象与此节点上的键相关联。 |
字段详细信息 |
---|
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
或未与任何
Document
一起使用的
DocumentType
时,返回
null
。
Node insertBefore(Node newChild, Node refChild) throws DOMException
refChild
之前插入节点
newChild
。如果
refChild
为
null
,则将
newChild
插入到子节点列表的末尾。
newChild
为
DocumentFragment
对象,则以同样的顺序将其所有节点插入
refChild
之前。如果
newChild
已经存在于树中,则首先移除它。
注:将一个节点插入本身之前与实现有关。
newChild
- 要插入的节点。
refChild
- 引用节点,即必须在其前插入新节点的节点。
DOMException
- HIERARCHY_REQUEST_ERR:在以下情况下引发此异常:如果此节点为不允许
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
节点类型的子节点的类型;或者如果要放入的节点为此节点的一个祖先或此节点本身;或者如果此节点为
Document
类型且替换操作的结果将第二个
DocumentType
或
Element
添加到
Document
上。
newChild
是从不同的文档创建的,不是从创建此节点的文档创建的,则引发此异常。
oldChild
不是此节点的子节点,则引发此异常。
Document
类型,则如果 DOM 实现不支持替换
DocumentType
子节点或
Element
子节点,则可能引发此异常。
Node removeChild(Node oldChild) throws DOMException
oldChild
所指示的子节点,并将其返回。
oldChild
- 移除的节点。
DOMException
- NO_MODIFICATION_ALLOWED_ERR: 如果此节点为只读的,则引发此异常。
oldChild
不是此节点的子节点。
Document
类型,则如果 DOM 实现不支持移除
DocumentType
子节点或
Element
子节点,则可能引发此异常。
Node appendChild(Node newChild) throws DOMException
newChild
添加到此节点的子节点列表的末尾。如果
newChild
已经存在于树中,则首先移除它。
newChild
- 要添加的节点。如果它是
DocumentFragment
对象,则将文档片段的整个内容移动到此节点的子列表中
DOMException
- HIERARCHY_REQUEST_ERR: 在以下情况下引发此异常:如果此节点为不允许
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
克隆的子节点应为只读的。此外,还要指定未指定的
Attr
节点的克隆。并且,克隆
Document
、
DocumentType
、
Entity
和
Notation
节点与实现有关。
deep
- 如果为
true
,则在指定节点下递归式克隆子树;如果为
false
,则仅克隆节点本身(及其属性,如果它是
Element
)。
void normalize()
Node
之下完整的深层子树中所有
Text
节点(包括属性节点)放入只有结构(如元素、注释、处理指令、CDATA 节和实体引用)分隔
Text
节点的“常规”形式,也就是说,既没有相邻的
Text
节点,也没有空
Text
节点。这可以用于确保一个文档的 DOM 视图相同,好像它是保存和重新加载的一样,并且在使用依赖特定文档树结构的操作(如 XPointer [
XPointer] 查询)时此方法非常有用。如果连接到
Node.ownerDocument
的
DOMConfiguration
对象的参数 "normalize-characters" 为
true
,则此方法还将完全标准化
Text
节点的字符。
注:在文档包含 CDATASections
的情况下,单独的标准化操作可能不充分,因为 XPointer 不区分 Text
节点和 CDATASection
节点。
boolean isSupported(String feature, String version)
feature
- 要测试的功能的名称。
version
- 这是要测试的功能的版本号。
true
;否则,返回
false
。
String getNamespaceURI()
null
(参见)。
ELEMENT_NODE
和
ATTRIBUTE_NODE
之外的任何类型的节点以及使用 DOM Level 1 方法创建的节点,如
Document.createElement()
,这始终为
null
。
注:根据 Namespaces in XML 规范 [XML Namespaces],属性不从它连接到的元素继承其名称空间。如果未显式给定一个属性名称空间,则它只是没有名称空间。
String getPrefix()
null
。当将它定义为
null
时,设置它无效,包括节点为只读的情况。
nodeName
属性,它将在可用时保存限定名称,以及
Element
和
Attr
接口的
tagName
和
name
属性。
null
会使它不被指定,将它设置为空字符串与实现有关。
namespaceURI
和
localName
没有发生变化。
ELEMENT_NODE
和
ATTRIBUTE_NODE
之外的任何类型的节点以及使用 DOM Level 1 方法创建的节点,如
Document
接口中的
createElement
,这始终为
null
。
void setPrefix(String prefix) throws DOMException
null
。当将它定义为
null
时,设置它无效,包括节点为只读的情况。
nodeName
属性,它将在可用时保存限定名称,以及
Element
和
Attr
接口的
tagName
和
name
属性。
null
会使它不被指定,将它设置为空字符串与实现有关。
namespaceURI
和
localName
不发生变化。
ELEMENT_NODE
和
ATTRIBUTE_NODE
之外的任何类型的节点以及使用 DOM Level 1 方法创建的节点,如
Document
接口中的
createElement
,这始终为
null
。
DOMException
- INVALID_CHARACTER_ERR: 根据在
Document.xmlVersion
属性中指定的正在使用的 XML 版本,如果指定的前缀包含非法字符,则引发此异常。
prefix
格式错误;如果此节点的
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
。此值如描述的那样计算。但是,当
Document
支持功能 "HTML" [
DOM Level 2 HTML] 时,首先使用 HTML BASE 元素(如果有)的 href 属性的值计算基 URI;否则,使用
Document
接口中的
documentURI
属性的值计算。
short compareDocumentPosition(Node other) throws DOMException
other
- 与引用节点比较的节点。
DOMException
- NOT_SUPPORTED_ERR: 当被比较的节点来自不同的 DOM 实现,未调整该 DOM 实现以返回一致的特定于实现的结果时。
String getTextContent() throws DOMException
null
时,设置它无效。设置后,移除此节点可能有的任何可能的子节点,并且如果新字符串不为空或
null
,则用包含此属性设置的字符串的单个
Text
节点替换。
Text.isElementContentWhitespace
)。类似地,设置后,也不执行解析,且以纯文本内容形式采用输入字符串。
节点类型 | 内容 |
---|---|
ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE | 串接每个子节点的 textContent 属性值,不包括 COMMENT_NODE 和 PROCESSING_INSTRUCTION_NODE 节点。如果该节点没有子节点,则这是空字符串。 |
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
)。类似地,设置后,也不执行解析,且以纯文本内容形式采用输入字符串。
节点类型 | 内容 |
---|---|
ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE | 串接每个子节点的 textContent 属性值,不包括 COMMENT_NODE 和 PROCESSING_INSTRUCTION_NODE 节点。如果该节点没有子节点,则这是空字符串。 |
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
引用引用同一个对象时,即使是通过代理,也可能完全可交换地使用这些引用,例如所有属性都有相同的值且在任何引用上调用同一个 DOM 方法总是起完全相同的作用。
other
- 要测试的节点。
true
;否则,返回
false
。
String lookupPrefix(String namespaceURI)
namespaceURI
- 要查找的名称空间 URI。
null
。如果一个以上的前缀与名称空间前缀相关,则返回的名称空间前缀与实现有关。
boolean isDefaultNamespace(String namespaceURI)
namespaceURI
是否是默认名称空间。
namespaceURI
- 要查找的名称空间 URI。
namespaceURI
为默认名称空间,则返回
true
;否则,返回
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
属性;
Attr
节点的
specified
属性;
Attr
和
Element
节点的
schemaTypeInfo
属性;
Text
节点的
Text.isElementContentWhitespace
属性;以及在节点上注册的任何用户数据和事件侦听器。
注:通常,在相等性检查的考虑中,上面描述中未提到的任何情况都是无关紧要的。注意,此规范的未来版本可能考虑更多属性,并且期望遵守此规范的实现进行相应的更新。
arg
- 与其比较相等性的节点。
true
;否则,返回
false
。
Object getFeature(String feature, String version)
Node
接口的特殊对象。
feature
- 所请求的功能的名称。注意,追加到功能名称的任何加号 "+" 将被忽略,因为它在此方法的上下文中无关紧要。
version
- 这是要测试的功能版本号。
null
。如果此方法返回的
DOMObject
实现
Node
接口,则它必须委托给主要核心
Node
且不返回与主要核心
Node
不一致的结果,如属性、子节点,等等。
Object setUserData(String key, Object data, UserDataHandler handler)
getUserData
从此节点检索到。
key
- 将该对象与其关联的键。
data
- 与给定键相关联的对象;为
null
时表示移除与任何现有的与该键的关联。
handler
- 与该键关联的处理程序,或
null
。
DOMUserData
;如果没有,则返回
null
。
Object getUserData(String key)
setUserData
将该对象设置到此节点。
key
- 该对象所关联的键。
DOMUserData
;如果没有,则返回
null
。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。