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