Module java.xml
Package org.w3c.dom

Interface 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(例如,ElementnodeValueCommentattributes)的这些属性没有明显的映射,会返回null。请注意,专门的接口可能包含其他更方便的机制来获取和设置相关信息。

nodeNamenodeValueattributes的值根据节点类型如下:

接口表
接口 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 实体名称 null null
EntityReference 引用的实体名称 null null
Notation 符号名称 null null
ProcessingInstruction ProcessingInstruction.target相同 ProcessingInstruction.data相同 null
Text "#text" CharacterData.data相同,即文本节点的内容 null

另请参阅文档对象模型(DOM)Level 3 Core规范

  • Field Details

    • 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
      See Also:
    • DOCUMENT_NODE

      static final short DOCUMENT_NODE
      The node is a 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
      前面与后面的确定是特定于实现的。
      参见:
  • Method Details

    • 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()
      包含该节点属性的NamedNodeMap(如果它是一个Element),否则为null
    • getOwnerDocument

      Document getOwnerDocument()
      与该节点关联的Document对象。这也是用于创建新节点的Document对象。当该节点是一个尚未与任何Document一起使用的DocumentDocumentType时,该值为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
      newChild替换子节点oldChild在子节点列表中,并返回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始终会克隆其子节点,因为它们代表其值,无论这是否是深度克隆。自动构造EntityReference的子树,如果存在相应的Entity,无论这是否是深度克隆。克隆任何其他类型的节点只是返回此节点的副本。
      请注意,克隆不可变子树会导致可变副本,但EntityReference克隆的子节点是只读的。此外,未指定的Attr节点的克隆是指定的。并且,克隆DocumentDocumentTypeEntityNotation节点是依赖于实现的。
      参数:
      deep - 如果为true,则递归克隆指定节点下的子树;如果为false,则仅克隆节点本身(以及其属性,如果它是Element)。
      返回:
      复制的节点。
    • normalize

      void normalize()
      将此Node下的子树的所有Text节点(包括属性节点)放入“正常”形式,其中仅结构(例如元素、注释、处理指令、CDATA部分和实体引用)分隔Text节点,即没有相邻的Text节点或空Text节点。这可用于确保文档的DOM视图与保存并重新加载后的文档相同,并且在使用依赖于特定文档树结构的操作(例如XPointer [XPointer]查找)时非常有用。如果附加到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

      注意: 根据XML命名空间规范[XML命名空间],属性不会从其所附加到的元素继承命名空间。如果属性没有明确给定命名空间,则它简单地没有命名空间。

      自从:
      1.4, DOM Level 2
    • getPrefix

      String getPrefix()
      此节点的命名空间前缀,如果未指定则为null。当定义为null时,设置它不会产生任何效果,包括节点是只读的情况。
      请注意,设置此属性(如果允许)会更改nodeName属性,其中包含限定名称,以及ElementAttr接口的tagNamename属性(适用时)。
      将前缀设置为null会使其未指定,将其设置为空字符串是依赖于实现的。
      还要注意,更改已知具有默认值的属性的前缀不会使具有默认值和原始前缀的新属性出现,因为namespaceURIlocalName不会更改。
      对于除ELEMENT_NODEATTRIBUTE_NODE之外的任何类型的节点以及使用DOM Level 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 Level 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,如果实现无法获取绝对URI,则为null。该值的计算方式如所述。但是,当Document支持特性“HTML”[DOM Level 2 HTML]时,基本URI首先使用HTML BASE元素的href属性的值(如果有的话),否则使用Document接口的documentURI属性的值计算。
      自从:
      1.5, DOM Level 3
    • compareDocumentPosition

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

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

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

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

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

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

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

      另外,以下内容不影响相等性:对于Attr节点,ownerDocumentbaseURIparentNode属性,AttrElement节点的specified属性,Text节点的schemaTypeInfo属性,Text节点的Text.isElementContentWhitespace属性,以及在节点上注册的任何用户数据或事件侦听器。

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

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

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

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

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