|
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. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。