模块 java.xml

接口 Node

所有已知的子接口:
Attr , CDATASection , CharacterData , Comment , Document , DocumentFragment , DocumentType , Element , Entity , EntityReference , HTMLAnchorElement , HTMLAppletElement , HTMLAreaElement , HTMLBaseElement , HTMLBaseFontElement , HTMLBodyElement , HTMLBRElement , HTMLButtonElement , HTMLDirectoryElement , HTMLDivElement , HTMLDListElement , HTMLDocument , HTMLElement , HTMLFieldSetElement , HTMLFontElement , HTMLFormElement , HTMLFrameElement , HTMLFrameSetElement , HTMLHeadElement , HTMLHeadingElement , HTMLHRElement , HTMLHtmlElement , HTMLIFrameElement , HTMLImageElement , HTMLInputElement , HTMLIsIndexElement , HTMLLabelElement , HTMLLegendElement , HTMLLIElement , HTMLLinkElement , HTMLMapElement , HTMLMenuElement , HTMLMetaElement , HTMLModElement , HTMLObjectElement , HTMLOListElement , HTMLOptGroupElement , HTMLOptionElement , HTMLParagraphElement , HTMLParamElement , HTMLPreElement , HTMLQuoteElement , HTMLScriptElement , HTMLSelectElement , HTMLStyleElement , HTMLTableCaptionElement , HTMLTableCellElement , HTMLTableColElement , HTMLTableElement , HTMLTableRowElement , HTMLTableSectionElement , HTMLTextAreaElement , HTMLTitleElement , HTMLUListElement , Notation , ProcessingInstruction , Text , XPathNamespace
所有已知的实现类:
IIOMetadataNode

public interface Node
Node 接口是整个文档对象模型的主要数据类型。它代表文档树中的单个节点。虽然所有实现 Node 接口的对象都会公开处理子对象的方法,但并非所有实现 Node 接口的对象都可能有子对象。例如,Text 节点可能没有子节点,向此类节点添加子节点会导致引发 DOMException

包含属性 nodeNamenodeValueattributes 作为一种获取节点信息的机制,而无需强制转换为特定的派生接口。如果特定 nodeType 的这些属性没有明显的映射(例如,nodeValue 对应 Elementattributes 对应 Comment),则返回 null。请注意,专用接口可能包含额外的和更方便的机制来获取和设置相关信息。

nodeNamenodeValueattributes 的值因节点类型而异,如下所示:

接口表
接口 节点名称 节点值 属性
Attr Attr.name相同 Attr.value相同 null
CDATASection "#cdata-section" CharacterData.data,CDATA Section的内容 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 实体名称 null null
EntityReference 引用的实体名称 null null
Notation 符号名称 null null
ProcessingInstruction ProcessingInstruction.target相同 ProcessingInstruction.data相同 null
Text "#text" CharacterData.data,文本节点的内容 null

另见 文档对象模型 (DOM) 级别 3 核心规范

  • 字段详细信息

    • ELEMENT_NODE

      static final short ELEMENT_NODE
      该节点是一个 Element
      参见:
    • ATTRIBUTE_NODE

      static final short ATTRIBUTE_NODE
      该节点是一个 Attr
      参见:
    • TEXT_NODE

      static final short TEXT_NODE
      该节点是一个Text节点。
      参见:
    • CDATA_SECTION_NODE

      static final short CDATA_SECTION_NODE
      该节点是 CDATASection
      参见:
    • ENTITY_REFERENCE_NODE

      static final short ENTITY_REFERENCE_NODE
      该节点是一个 EntityReference
      参见:
    • ENTITY_NODE

      static final short ENTITY_NODE
      该节点是一个 Entity
      参见:
    • PROCESSING_INSTRUCTION_NODE

      static final short PROCESSING_INSTRUCTION_NODE
      该节点是 ProcessingInstruction
      参见:
    • COMMENT_NODE

      static final short COMMENT_NODE
      该节点是 Comment
      参见:
    • DOCUMENT_NODE

      static final short DOCUMENT_NODE
      该节点是 Document
      参见:
    • DOCUMENT_TYPE_NODE

      static final short DOCUMENT_TYPE_NODE
      该节点是 DocumentType
      参见:
    • DOCUMENT_FRAGMENT_NODE

      static final short DOCUMENT_FRAGMENT_NODE
      该节点是 DocumentFragment
      参见:
    • NOTATION_NODE

      static final short NOTATION_NODE
      该节点是 Notation
      参见:
    • DOCUMENT_POSITION_DISCONNECTED

      static final short DOCUMENT_POSITION_DISCONNECTED
      两个节点断开连接。断开连接的节点之间的顺序始终是特定于实现的。
      参见:
    • DOCUMENT_POSITION_PRECEDING

      static final short DOCUMENT_POSITION_PRECEDING
      第二个节点在参考节点之前。
      参见:
    • DOCUMENT_POSITION_FOLLOWING

      static final short DOCUMENT_POSITION_FOLLOWING
      该节点跟随参考节点。
      参见:
    • DOCUMENT_POSITION_CONTAINS

      static final short DOCUMENT_POSITION_CONTAINS
      该节点包含引用节点。包含的节点也总是在前面。
      参见:
    • DOCUMENT_POSITION_CONTAINED_BY

      static final short DOCUMENT_POSITION_CONTAINED_BY
      该节点包含在引用节点中。包含的节点也总是跟随。
      参见:
    • DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC

      static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
      先行还是后行的确定是特定于实现的。
      参见:
  • 方法详情

    • getNodeName

      String  getNodeName()
      此节点的名称,取决于其类型;见上表。
    • getNodeValue

      String  getNodeValue() throws DOMException
      这个节点的值,取决于它的类型;见上表。当它被定义为 null 时,设置它无效,包括节点是否只读。
      抛出:
      DOMException - DOMSTRING_SIZE_ERR:当它返回的字符多于实现平台上 DOMString 变量中的字符数时引发。
    • setNodeValue

      void setNodeValue(String  nodeValue) throws DOMException
      这个节点的值,取决于它的类型;见上表。当它被定义为 null 时,设置它无效,包括节点是否只读。
      抛出:
      DOMException - NO_MODIFICATION_ALLOWED_ERR:当节点为只读且未定义为 null 时引发。
    • getNodeType

      short getNodeType()
      表示基础对象类型的代码,如上定义。
    • getParentNode

      Node  getParentNode()
      此节点的父节点。除了 AttrDocumentDocumentFragmentEntityNotation 之外的所有节点都可能有一个父节点。但是,如果一个节点刚刚创建但尚未添加到树中,或者如果它已从树中删除,则为 null
    • getChildNodes

      NodeList  getChildNodes()
      包含此节点的所有子节点的 NodeList。如果没有孩子,这是一个不包含节点的NodeList
    • getFirstChild

      Node  getFirstChild()
      此节点的第一个子节点。如果没有这样的节点,则返回 null
    • getLastChild

      Node  getLastChild()
      此节点的最后一个子节点。如果没有这样的节点,则返回 null
    • getPreviousSibling

      Node  getPreviousSibling()
      紧接此节点之前的节点。如果没有这样的节点,则返回 null
    • getNextSibling

      Node  getNextSibling()
      紧接此节点之后的节点。如果没有这样的节点,则返回 null
    • getAttributes

      NamedNodeMap  getAttributes()
      A NamedNodeMap 包含此节点的属性(如果它是 Element )或 null 否则。
    • getOwnerDocument

      Document  getOwnerDocument()
      与此节点关联的 Document 对象。这也是用于创建新节点的 Document 对象。当此节点是 Document 或尚未与任何 Document 一起使用的 DocumentType 时,这是 null
      自从:
      1.4、DOM Level 2
    • insertBefore

      Node  insertBefore(Node  newChild, Node  refChild) throws DOMException
      在现有子节点 refChild 之前插入节点 newChild。如果 refChildnull ,则在子列表的末尾插入 newChild
      如果 newChild 是一个 DocumentFragment 对象,则它的所有子对象都以相同的顺序插入到 refChild 之前。如果 newChild 已经在树中,则首先将其删除。

      笔记:在自身之前插入节点取决于实现。

      参数:
      newChild - 要插入的节点。
      refChild - 参考节点,即必须在其前插入新节点的节点。
      返回:
      正在插入的节点。
      抛出:
      DOMException - HIERARCHY_REQUEST_ERR:如果此节点的类型不允许 newChild 节点的子节点类型,或者要插入的节点是此节点的祖先之一或此节点本身,或者此节点的类型为 Document,则引发并且 DOM 应用程序尝试插入第二个 DocumentTypeElement 节点。
      WRONG_DOCUMENT_ERR:如果 newChild 是从与创建此节点的文档不同的文档创建的,则引发。
      NO_MODIFICATION_ALLOWED_ERR:如果此节点是只读的或者所插入节点的父节点是只读的,则引发。
      NOT_FOUND_ERR:如果 refChild 不是该节点的子节点则引发。
      NOT_SUPPORTED_ERR:如果此节点的类型为 Document,如果 DOM 实现不支持插入 DocumentTypeElement 节点,则可能会引发此异常。
      自从:
      1.4、DOM Level 3
    • replaceChild

      Node  replaceChild(Node  newChild, Node  oldChild) throws DOMException
      将子节点列表中的子节点oldChild替换为newChild,并返回oldChild节点。
      如果 newChild 是一个 DocumentFragment 对象,则 oldChild 将替换为所有 DocumentFragment 子对象,它们以相同的顺序插入。如果 newChild 已经在树中,则首先将其删除。

      笔记:用自身替换节点是依赖于实现的。

      参数:
      newChild - 要放入子列表的新节点。
      oldChild - 列表中被替换的节点。
      返回:
      节点已替换。
      抛出:
      DOMException - HIERARCHY_REQUEST_ERR:如果此节点的类型不允许 newChild 节点的子节点类型,或者如果要放入的节点是此节点的祖先之一或此节点本身,或者此节点的类型Document 和替换操作的结果将在 Document 节点上添加第二个 DocumentTypeElement
      WRONG_DOCUMENT_ERR:如果 newChild 是从与创建此节点的文档不同的文档创建的,则引发。
      NO_MODIFICATION_ALLOWED_ERR:如果此节点或新节点的父节点是只读的,则引发。
      NOT_FOUND_ERR:如果 oldChild 不是该节点的子节点则引发。
      NOT_SUPPORTED_ERR:如果此节点的类型为 Document,如果 DOM 实现不支持替换 DocumentType 子节点或 Element 子节点,则可能会引发此异常。
      自从:
      1.4、DOM Level 3
    • removeChild

      Node  removeChild(Node  oldChild) throws DOMException
      从子列表中删除 oldChild 指示的子节点,并将其返回。
      参数:
      oldChild - 正在删除的节点。
      返回:
      节点已删除。
      抛出:
      DOMException - NO_MODIFICATION_ALLOWED_ERR:如果此节点是只读的,则引发。
      NOT_FOUND_ERR:如果 oldChild 不是该节点的子节点则引发。
      NOT_SUPPORTED_ERR:如果此节点的类型为 Document,如果 DOM 实现不支持删除 DocumentType 子节点或 Element 子节点,则可能会引发此异常。
      自从:
      1.4、DOM Level 3
    • appendChild

      Node  appendChild(Node  newChild) throws DOMException
      将节点 newChild 添加到该节点的子节点列表的末尾。如果 newChild 已经在树中,则首先将其删除。
      参数:
      newChild - 要添加的节点。如果它是一个 DocumentFragment 对象,则将文档片段的全部内容移动到该节点的子列表中
      返回:
      添加的节点。
      抛出:
      DOMException - HIERARCHY_REQUEST_ERR:如果此节点的类型不允许 newChild 节点的子节点类型,或者要附加的节点是此节点的祖先之一或此节点本身,或者此节点的类型为 Document,则引发并且 DOM 应用程序尝试附加第二个 DocumentTypeElement 节点。
      WRONG_DOCUMENT_ERR:如果 newChild 是从与创建此节点的文档不同的文档创建的,则引发。
      NO_MODIFICATION_ALLOWED_ERR:如果此节点是只读的,或者所插入节点的前一个父节点是只读的,则引发。
      NOT_SUPPORTED_ERR:如果 newChild 节点是 Document 节点的子节点,如果 DOM 实现不支持删除 DocumentType 子节点或 Element 子节点,则可能会引发此异常。
      自从:
      1.4、DOM Level 3
    • hasChildNodes

      boolean hasChildNodes()
      返回此节点是否有任何子节点。
      返回:
      如果此节点有任何子节点,则返回 true,否则返回 false
    • cloneNode

      Node  cloneNode(boolean deep)
      返回此节点的副本,即用作节点的通用复制构造函数。重复节点没有父节点(parentNodenull)并且没有用户数据。与导入节点关联的用户数据不会被保留。但是,如果已指定任何 UserDataHandlers 以及关联的数据,将在该方法返回之前使用适当的参数调用这些处理程序。
      克隆 Element 会复制所有属性及其值,包括由 XML 处理器生成的表示默认属性的属性,但此方法不会复制它包含的任何子项,除非它是深度克隆。这包括 Element 中包含的文本,因为该文本包含在子节点 Text 中。直接克隆 Attr,而不是作为 Element 克隆操作的一部分进行克隆,返回指定的属性(specifiedtrue)。克隆一个 Attr 总是克隆它的孩子,因为它们代表它的值,不管这是否是深度克隆。如果相应的 Entity 可用,则克隆 EntityReference 会自动构建其子树,无论这是否是深度克隆。克隆任何其他类型的节点只会返回该节点的副本。
      请注意,克隆不可变子树会产生可变副本,但 EntityReference 克隆的子树是只读的。此外,指定了未指定的 Attr 节点的克隆。并且,克隆 DocumentDocumentTypeEntityNotation 节点取决于实现。
      参数:
      deep - 如果是 true ,则递归克隆指定节点下的子树;如果是 false ,则仅克隆节点本身(及其属性,如果它是 Element )。
      返回:
      重复节点。
    • normalize

      void normalize()
      将此 Node 下子树的完整深度中的所有 Text 节点(包括属性节点)放入“正常”形式,其中只有结构(例如,元素、注释、处理指令、CDATA 部分和实体引用)将 Text 节点分开,即既没有相邻的Text节点,也没有空的Text节点。这可用于确保文档的 DOM 视图与保存和重新加载时相同,并且在依赖于特定文档树结构的操作(例如 XPointer [X指针 ] 查找)要执行时很有用使用。如果附加到Node.ownerDocumentDOMConfiguration对象的参数“normalize-characters”是true,该方法也将完全规范化Text节点的字符。

      笔记:在文档包含 CDATASections 的情况下,仅规范化操作可能不够,因为 XPointers 不区分 Text 节点和 CDATASection 节点。

      自从:
      1.4、DOM Level 3
    • isSupported

      boolean isSupported(String  feature, String  version)
      测试 DOM 实现是否实现了特定的功能,并且该功能是否受此节点的支持,如中所指定。
      参数:
      feature - 要测试的功能的名称。
      version - 这是要测试的功能的版本号。
      返回:
      如果此节点支持指定的功能,则返回 true,否则返回 false
      自从:
      1.4、DOM Level 2
    • getNamespaceURI

      String  getNamespaceURI()
      此节点的命名空间 URI,如果未指定,则为 null(参见 参考资料)。
      这不是一个计算值,它是基于范围内命名空间声明检查的命名空间查找的结果。它只是在创建时给出的名称空间 URI。
      对于 ELEMENT_NODEATTRIBUTE_NODE 以外的任何类型的节点以及使用 DOM Level 1 方法创建的节点,例如 Document.createElement() ,这始终是 null

      笔记:根据 Namespaces in XML 规范 [XML 命名空间 ],属性不会从它所附加的元素继承其命名空间。如果一个属性没有明确地指定一个名称空间,它就没有名称空间。

      自从:
      1.4、DOM Level 2
    • getPrefix

      String  getPrefix()
      此节点的命名空间前缀,如果未指定,则为 null。当它被定义为 null 时,设置它无效,包括节点是否只读。
      请注意,在允许的情况下设置此属性会更改包含限定名称的 nodeName 属性,以及 ElementAttr 接口的 tagNamename 属性(如果适用)。
      将前缀设置为 null 使其未指定,将其设置为空字符串取决于实现。
      另请注意,更改已知具有默认值的属性的前缀不会使具有默认值的新属性和原始前缀出现,因为 namespaceURIlocalName 不会更改。
      对于 ELEMENT_NODEATTRIBUTE_NODE 以外的任何类型的节点以及使用 DOM 级别 1 方法创建的节点,例如来自 Document 接口的 createElement,这始终是 null
      自从:
      1.4、DOM Level 2
    • setPrefix

      void setPrefix(String  prefix) throws DOMException
      此节点的命名空间前缀,如果未指定,则为 null。当它被定义为 null 时,设置它无效,包括节点是否只读。
      请注意,在允许的情况下设置此属性会更改包含限定名称的 nodeName 属性,以及 ElementAttr 接口的 tagNamename 属性(如果适用)。
      将前缀设置为 null 使其未指定,将其设置为空字符串取决于实现。
      另请注意,更改已知具有默认值的属性的前缀不会使具有默认值的新属性和原始前缀出现,因为 namespaceURIlocalName 不会更改。
      对于 ELEMENT_NODEATTRIBUTE_NODE 以外的任何类型的节点以及使用 DOM 级别 1 方法创建的节点,例如来自 Document 接口的 createElement,这始终是 null
      抛出:
      DOMException - INVALID_CHARACTER_ERR:根据 Document.xmlVersion 属性中指定的使用中的 XML 版本,如果指定前缀包含非法字符,则引发。
      NO_MODIFICATION_ALLOWED_ERR:如果此节点是只读的则引发。
      NAMESPACE_ERR:如果指定的 prefix 根据 XML 规范中的命名空间格式错误,如果此节点的 namespaceURInull,如果指定的前缀是“xml”并且此节点的 namespaceURI 不同于“ http://www.w3.org/XML/1998/namespace”,如果此节点是一个属性并且指定的前缀是“xmlns”并且这个节点的namespaceURI不同于“http://www.w3.org/2000/xmlns/”,或者如果这个节点是一个属性并且这个节点的qualifiedName是“xmlns”[XML 命名空间]。
      自从:
      1.4、DOM Level 2
    • getLocalName

      String  getLocalName()
      返回此节点的限定名称的本地部分。
      对于 ELEMENT_NODEATTRIBUTE_NODE 以外的任何类型的节点以及使用 DOM Level 1 方法创建的节点,例如 Document.createElement() ,这始终是 null
      自从:
      1.4、DOM Level 2
    • hasAttributes

      boolean hasAttributes()
      返回此节点(如果它是一个元素)是否具有任何属性。
      返回:
      如果此节点具有任何属性,则返回 true,否则返回 false
      自从:
      1.4、DOM Level 2
    • getBaseURI

      String  getBaseURI()
      此节点的绝对基础 URI 或 null(如果实现无法获得绝对 URI)。该值的计算方法如 中所述。但是,当 Document 支持功能“HTML” [DOM 2 级 HTML ] 时,首先使用 HTML BASE 元素的 href 属性值(如果有)计算基本 URI,否则使用 Document 接口的 documentURI 属性值。
      自从:
      1.5,DOM 级别 3
    • compareDocumentPosition

      short compareDocumentPosition(Node  other) throws DOMException
      根据文档顺序比较参考节点(即调用此方法的节点)和节点(即作为参数传递的节点)在文档中的位置。
      参数:
      other - 要与参考节点进行比较的节点。
      返回:
      返回节点相对于参考节点的定位方式。
      抛出:
      DOMException - NOT_SUPPORTED_ERR:当比较的节点来自不同的 DOM 实现时,这些实现不协调以返回一致的特定于实现的结果。
      自从:
      1.5,DOM 级别 3
    • getTextContent

      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 变量中的字符数时引发。
      自从:
      1.5,DOM 级别 3
    • setTextContent

      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:节点为只读时引发。
      自从:
      1.5,DOM 级别 3
    • isSameNode

      boolean isSameNode(Node  other)
      返回此节点是否与给定节点相同。
      此方法提供了一种方法来确定实现返回的两个 Node 引用是否引用同一对象。当两个 Node 引用是对同一对象的引用时,即使通过代理,这些引用也可以完全互换使用,这样所有属性都具有相同的值,并且在任一引用上调用相同的 DOM 方法始终具有完全相同的效果。
      参数:
      other - 要测试的节点。
      返回:
      如果节点相同,则返回 true,否则返回 false
      自从:
      1.5,DOM 级别 3
    • lookupPrefix

      String  lookupPrefix(String  namespaceURI)
      从此节点开始查找与给定名称空间 URI 关联的前缀。此方法忽略默认命名空间声明。
      有关此方法使用的算法的详细信息,请参见。
      参数:
      namespaceURI - 要查找的名称空间 URI。
      返回:
      如果找到则返回关联的名称空间前缀,如果未找到则返回 null。如果多个前缀与命名空间前缀相关联,则返回的命名空间前缀是依赖于实现的。
      自从:
      1.5,DOM 级别 3
    • isDefaultNamespace

      boolean isDefaultNamespace(String  namespaceURI)
      此方法检查指定的 namespaceURI 是否为默认命名空间。
      参数:
      namespaceURI - 要查找的名称空间 URI。
      返回:
      如果指定的 namespaceURI 是默认命名空间,则返回 true,否则返回 false
      自从:
      1.5,DOM 级别 3
    • lookupNamespaceURI

      String  lookupNamespaceURI(String  prefix)
      从此节点开始查找与给定前缀关联的命名空间 URI。
      有关此方法使用的算法的详细信息,请参见。
      参数:
      prefix - 要查找的前缀。如果此参数是 null ,则该方法将返回默认命名空间 URI(如果有)。
      返回:
      返回关联的命名空间 URI 或 null(如果未找到)。
      自从:
      1.5,DOM 级别 3
    • isEqualNode

      boolean isEqualNode(Node  arg)
      测试两个节点是否相等。
      此方法测试节点的相等性,而不是相同性(即,两个节点是否是对同一对象的引用),可以使用 Node.isSameNode() 进行测试。所有相同的节点也将相等,但反过来可能不成立。
      当且仅当满足以下条件时,两个节点才相等:
      • 这两个节点属于同一类型。
      • 以下字符串属性相等:nodeNamelocalNamenamespaceURIprefixnodeValue。这是:它们都是 null ,或者它们具有相同的长度并且字符对字符相同。
      • attributes NamedNodeMaps 是相等的。这是:它们都是 null ,或者它们具有相同的长度,并且对于一个map中存在的每个节点,另一个map中存在一个节点并且相等,尽管不一定在相同的索引处。
      • childNodes NodeLists 是相等的。这是:它们都是 null ,或者它们具有相同的长度并且在相同的索引处包含相同的节点。请注意,规范化会影响平等;为避免这种情况,应在比较之前对节点进行归一化。

      两个DocumentType节点要相等,还必须满足以下条件:
      • 以下字符串属性相等:publicIdsystemIdinternalSubset
      • entities NamedNodeMaps 是相等的。
      • notations NamedNodeMaps 是相等的。

      另一方面,以下不影响相等性:ownerDocumentbaseURIparentNode 属性,Attr 节点的 specified 属性,AttrElement 节点的 schemaTypeInfo 属性,_n53458 的 Text.isElementContentWhitespace 属性_ 节点,以及任何用户数据或在节点上注册的事件监听器。

      笔记:作为一般规则,以上描述中未提及的任何内容在考虑相等性检查时都不重要。请注意,本规范的未来版本可能会考虑更多属性,并且符合本规范的实现预计会相应更新。

      参数:
      arg - 比较相等性的节点。
      返回:
      如果节点相等,则返回 true,否则返回 false
      自从:
      1.5,DOM 级别 3
    • getFeature

      Object  getFeature(String  feature, String  version)
      此方法返回一个专用对象,该对象实现指定功能和版本的专用 API,如 .专用对象也可以通过使用特定于绑定的转换方法来获得,但不一定期望如此,如 中所讨论的。此方法还允许实现提供不支持 Node 接口的专用对象。
      参数:
      feature - 请求的功能的名称。请注意,特征名称前的任何加号“+”都将被忽略,因为它在此方法的上下文中并不重要。
      version - 这是要测试的功能的版本号。
      返回:
      返回一个对象,该对象实现了指定功能和版本的专用 API(如果有),如果没有实现与该功能关联的接口的对象,则返回 null。如果该方法返回的DOMObject实现了Node接口,则必须委托给主核Node,不能返回与主核Node不一致的结果,如属性、childNodes等。
      自从:
      1.5,DOM 级别 3
    • setUserData

      Object  setUserData(String  key, Object  data, UserDataHandler  handler)
      将对象关联到此节点上的键。稍后可以通过使用相同的键调用 getUserData 从此节点检索对象。
      参数:
      key - 将对象关联到的键。
      data - 与给定键关联的对象,或 null 删除与该键的任何现有关联。
      handler - 关联到该键的处理程序,或 null
      返回:
      返回先前关联到此节点上给定键的 DOMUserData,如果没有则返回 null
      自从:
      1.5,DOM 级别 3
    • getUserData

      Object  getUserData(String  key)
      检索与此节点上的键关联的对象。该对象必须首先通过使用相同的键调用 setUserData 设置到该节点。
      参数:
      key - 对象关联的键。
      返回:
      返回与此节点上给定键关联的 DOMUserData,如果没有则返回 null
      自从:
      1.5,DOM 级别 3