- 所有超级接口:
-
Node
- 所有已知的子接口:
-
HTMLDocument
Document
接口表示整个HTML或XML文档。在概念上,它是文档树的根,并提供对文档数据的主要访问。
由于元素、文本节点、注释、处理指令等不能存在于Document
之外的上下文中,Document
接口还包含创建这些对象所需的工厂方法。创建的Node
对象具有一个ownerDocument
属性,将它们与创建它们的Document
关联起来。
-
Field Summary
Fields declared in interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
-
Method Summary
Modifier and TypeMethodDescription尝试将来自另一个文档的节点采用到此文档中。createAttribute
(String name) 创建具有给定名称的Attr
。createAttributeNS
(String namespaceURI, String qualifiedName) 创建具有给定限定名称和命名空间URI的属性。createCDATASection
(String data) 创建一个值为指定字符串的CDATASection
节点。createComment
(String data) 给定指定字符串,创建一个Comment
节点。创建一个空的DocumentFragment
对象。createElement
(String tagName) 创建指定类型的元素。createElementNS
(String namespaceURI, String qualifiedName) 创建具有给定限定名称和命名空间URI的元素。createEntityReference
(String name) 创建一个EntityReference
对象。createProcessingInstruction
(String target, String data) 给定指定名称和数据字符串,创建一个ProcessingInstruction
节点。createTextNode
(String data) 给定指定字符串,创建一个Text
节点。与此文档关联的文档类型声明(参见DocumentType
)。这是一个方便的属性,允许直接访问作为文档元素的子节点的子节点。文档的位置,如果未定义或使用DOMImplementation.createDocument
创建了Document
,则为null
。在调用Document.normalizeDocument()
时使用的配置。getElementById
(String elementId) 返回具有给定值的具有ID属性的Element
。getElementsByTagName
(String tagname) 返回按文档顺序具有给定标记名称且包含在文档中的所有Element
的NodeList
。getElementsByTagNameNS
(String namespaceURI, String localName) 返回按文档顺序具有给定本地名称和命名空间URI的所有Element
的NodeList
。处理此文档的DOMImplementation
对象。指定解析时使用的编码的属性。boolean
指定是否强制执行错误检查的属性。作为XML声明的一部分,指定此文档的编码的属性。boolean
作为XML声明的一部分,指定此文档是否是独立的属性。作为XML声明的一部分,指定此文档的版本号的属性。importNode
(Node importedNode, boolean deep) 从另一个文档导入节点到此文档,而不更改或删除原始文档中的源节点;此方法创建源节点的新副本。void
此方法就像文档经历保存和加载循环一样,将文档放入“正常”形式。renameNode
(Node n, String namespaceURI, String qualifiedName) 重命名类型为ELEMENT_NODE
或ATTRIBUTE_NODE
的现有节点。void
setDocumentURI
(String documentURI) 文档的位置,如果未定义或使用DOMImplementation.createDocument
创建了Document
,则为null
。void
setStrictErrorChecking
(boolean strictErrorChecking) 指定是否强制执行错误检查的属性。void
setXmlStandalone
(boolean xmlStandalone) 作为XML声明的一部分,指定此文档是否是独立的属性。void
setXmlVersion
(String xmlVersion) 作为XML声明的一部分,指定此文档的版本号的属性。Methods declared in interface org.w3c.dom.Node
appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
-
Method Details
-
getDoctype
DocumentType getDoctype()与此文档关联的文档类型声明(参见DocumentType
)。对于没有文档类型声明的XML文档,返回null
。对于HTML文档,可能返回一个DocumentType
对象,与HTML文档中是否存在文档类型声明无关。
这提供了对Document
的子节点之一,即DocumentType
节点的直接访问。此节点可以在文档创建时设置,并通过使用子节点操作方法(如Node.insertBefore
或Node.replaceChild
)稍后更改。但是,请注意,虽然一些实现可能实例化支持比“Core”更多功能的不同类型的Document
对象,例如“HTML”[DOM Level 2 HTML],基于创建时指定的DocumentType
,之后更改它几乎不太可能导致支持的功能发生变化。- 自从:
- 1.4, DOM Level 3
-
getImplementation
DOMImplementation getImplementation()处理此文档的DOMImplementation
对象。DOM应用程序可以使用来自多个实现的对象。 -
getDocumentElement
Element getDocumentElement()这是一个方便的属性,允许直接访问作为文档元素的子节点的子节点。 -
createElement
创建指定类型的元素。请注意,返回的实例实现了Element
接口,因此可以直接在返回的对象上指定属性。
此外,如果已知具有默认值的属性,则会自动创建并附加表示它们的Attr
节点到元素上。
要创建具有限定名称和命名空间URI的元素,请使用createElementNS
方法。- 参数:
-
tagName
- 要实例化的元素类型的名称。对于XML,这是区分大小写的,否则取决于正在使用的标记语言的区分大小写。在这种情况下,名称将通过DOM实现映射到该标记的规范形式。 - 返回:
-
具有
nodeName
属性设置为tagName
,并将localName
、prefix
和namespaceURI
设置为null
的新Element
对象。 - 抛出:
-
DOMException
- INVALID_CHARACTER_ERR: 如果指定的名称根据Document.xmlVersion
属性中指定的XML版本不是XML名称,则引发异常。
-
createDocumentFragment
DocumentFragment createDocumentFragment()创建一个空的DocumentFragment
对象。- 返回:
-
一个新的
DocumentFragment
。
-
createTextNode
给定指定字符串,创建一个Text
节点。- 参数:
-
data
- 节点的数据。 - 返回:
-
新的
Text
对象。
-
createComment
给定指定字符串,创建一个Comment
节点。- 参数:
-
data
- 节点的数据。 - 返回:
-
新的
Comment
对象。
-
createCDATASection
创建一个值为指定字符串的CDATASection
节点。- 参数:
-
data
-CDATASection
内容的数据。 - 返回:
-
新的
CDATASection
对象。 - 抛出:
-
DOMException
- NOT_SUPPORTED_ERR: 如果此文档是HTML文档,则引发异常。
-
createProcessingInstruction
给定指定名称和数据字符串,创建一个ProcessingInstruction
节点。- 参数:
-
target
- 处理指令的目标部分。与Document.createElementNS
或Document.createAttributeNS
不同,目标名称上不执行命名空间格式检查。应用程序应调用Document.normalizeDocument()
,并将参数“命名空间”设置为true
,以确保目标名称符合命名空间格式。 -
data
- 节点的数据。 - 返回:
-
新的
ProcessingInstruction
对象。 - 抛出:
-
DOMException
- INVALID_CHARACTER_ERR: 如果指定的目标根据Document.xmlVersion
属性中指定的XML版本不是XML名称。
NOT_SUPPORTED_ERR: 如果此文档是HTML文档,则引发异常。
-
createAttribute
创建具有给定名称的Attr
。然后,Attr
实例可以使用setAttributeNode
方法设置在Element
上。
要创建具有限定名称和命名空间URI的属性,请使用createAttributeNS
方法。- 参数:
-
name
- 属性的名称。 - 返回:
-
具有
nodeName
属性设置为name
,并将localName
、prefix
和namespaceURI
设置为null
的新Attr
对象。属性的值为空字符串。 - 抛出:
-
DOMException
- INVALID_CHARACTER_ERR: 如果指定的名称根据Document.xmlVersion
属性中指定的XML版本不是XML名称。
-
createEntityReference
创建一个EntityReference
对象。此外,如果已知引用的实体,则EntityReference
节点的子列表将与相应的Entity
节点的子列表相同。注意:如果
Entity
节点的任何后代具有未绑定的命名空间前缀,则创建的EntityReference
节点的相应后代也是未绑定的;(其namespaceURI
为null
)。DOM Level 2和3不支持在这种情况下解析命名空间前缀的任何机制。- 参数:
-
name
- 要引用的实体的名称。与Document.createElementNS
或Document.createAttributeNS
不同,对实体名称不进行命名空间格式检查。应用程序应调用Document.normalizeDocument()
,并将参数“namespaces”设置为true
,以确保实体名称符合命名空间格式。 - 返回:
-
新的
EntityReference
对象。 - 抛出:
-
DOMException
- INVALID_CHARACTER_ERR:如果指定的名称不是根据Document.xmlVersion
属性中指定的正在使用的XML版本的XML名称,则引发异常。
NOT_SUPPORTED_ERR:如果此文档是HTML文档,则引发异常。
-
getElementsByTagName
返回一个按文档顺序包含给定标记名称且包含在文档中的所有Elements
的NodeList
。- 参数:
-
tagname
- 要匹配的标记名称。特殊值“*”匹配所有标记。对于XML,tagname
参数区分大小写,否则取决于所使用的标记语言的区分大小写。 - 返回:
-
包含所有匹配的
Elements
的新NodeList
对象。
-
importNode
从另一个文档导入节点到此文档,而不更改或删除原始文档中的源节点;此方法创建源节点的新副本。返回的节点没有父节点;(parentNode
为null
)。
对于所有节点,导入节点会创建一个由导入文档拥有的节点对象,其属性值与源节点的nodeName
和nodeType
相同,以及与命名空间相关的属性(prefix
、localName
和namespaceURI
)。与cloneNode
操作一样,源节点不会被更改。与导入节点关联的用户数据不会被传递。但是,如果已指定任何UserDataHandlers
以及相关数据,则这些处理程序将在此方法返回之前使用适当的参数调用。
附加信息将根据nodeType
适当复制到nodeType
,试图模拟从一个文档复制到另一个文档的XML或HTML源片段的预期行为,认识到两个文档在XML情况下可能具有不同的DTD。以下列表描述了每种节点类型的具体信息。- ATTRIBUTE_NODE
-
ownerElement
属性设置为null
,并在生成的Attr
上将specified
标志设置为true
。源Attr
的后代被递归导入,并重新组装生成的节点以形成相应的子树。请注意,deep
参数对Attr
节点没有影响;当导入时,它们始终携带其子节点。 - DOCUMENT_FRAGMENT_NODE
-
如果将
deep
选项设置为true
,则将递归导入源DocumentFragment
的后代,并重新组装生成的节点以形成相应的子树。否则,这只会生成一个空的DocumentFragment
。 - DOCUMENT_NODE
-
无法导入
Document
节点。 - DOCUMENT_TYPE_NODE
-
无法导入
DocumentType
节点。 - ELEMENT_NODE
-
源元素的Specified属性节点被导入,并且生成的
Attr
节点附加到生成的Element
上。默认属性不会被复制,但是如果导入的文档为该元素名称定义了默认属性,则会分配这些属性。如果将importNode
deep
参数设置为true
,则将递归导入源元素的后代,并重新组装生成的节点以形成相应的子树。 - ENTITY_NODE
-
可以导入
Entity
节点,但是在当前DOM的发布版本中,DocumentType
是只读的。将考虑在将来的DOM版本中将这些导入的节点添加到DocumentType
中。在导入时,将复制publicId
、systemId
和notationName
属性。如果请求进行deep
导入,则将递归导入源Entity
的后代,并重新组装生成的节点以形成相应的子树。 - ENTITY_REFERENCE_NODE
-
仅复制
EntityReference
本身,即使请求进行deep
导入,因为源文档和目标文档可能以不同方式定义实体。如果导入的文档提供了此实体名称的定义,则将分配其值。 - NOTATION_NODE
-
可以导入
Notation
节点,但是在当前DOM的发布版本中,DocumentType
是只读的。将考虑在将来的DOM版本中将这些导入的节点添加到DocumentType
中。在导入时,将复制publicId
和systemId
属性。请注意,deep
参数对此类型的节点没有影响,因为它们不能有任何子节点。 - PROCESSING_INSTRUCTION_NODE
-
导入的节点将从源节点的
target
和data
值复制。请注意,deep
参数对此类型的节点没有影响,因为它们不能有任何子节点。 - TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
-
这三种继承自
CharacterData
的节点类型将从源节点的data
和length
属性复制。请注意,deep
参数对这些类型的节点没有影响,因为它们不能有任何子节点。
- 参数:
-
importedNode
- 要导入的节点。 -
deep
- 如果为true
,则递归导入指定节点下的子树;如果为false
,则仅导入节点本身,如上所述。对于不能有任何子节点的节点以及Attr
和EntityReference
节点,此参数没有影响。 - 返回:
-
属于此
Document
的导入节点。 - 抛出:
-
DOMException
- NOT_SUPPORTED_ERR:如果要导入的节点类型不受支持,则引发异常。
INVALID_CHARACTER_ERR:如果导入的名称之一不是根据Document.xmlVersion
属性中指定的正在使用的XML版本的XML名称,则引发异常。例如,将XML 1.1元素导入XML 1.0文档时可能会发生这种情况。 - 自:
- 1.4,DOM Level 2
-
createElementNS
- 参数:
-
namespaceURI
- 要创建的元素的命名空间URI。 -
qualifiedName
- 要实例化的元素类型的限定名称。 - 返回:
-
具有以下属性的新
Element
对象:Element
对象的属性属性 值 Node.nodeName
qualifiedName
Node.namespaceURI
namespaceURI
Node.prefix
从 qualifiedName
中提取的前缀,如果没有前缀则为null
Node.localName
从 qualifiedName
中提取的本地名称Element.tagName
qualifiedName
- 抛出:
-
DOMException
- INVALID_CHARACTER_ERR:如果指定的qualifiedName
不是根据Document.xmlVersion
属性中指定的正在使用的XML版本的XML名称,则引发异常。
NAMESPACE_ERR:如果qualifiedName
是格式错误的限定名称,如果qualifiedName
具有前缀且namespaceURI
为null
,或者如果qualifiedName
具有前缀为“xml”且namespaceURI
与“ http://www.w3.org/XML/1998/namespace”不同,或者如果qualifiedName
或其前缀为“xmlns”且namespaceURI
与“http://www.w3.org/2000/xmlns/”不同,或者如果namespaceURI
为“http://www.w3.org/2000/xmlns/”且qualifiedName
或其前缀均不为“xmlns”时,引发异常。
NOT_SUPPORTED_ERR:如果当前文档不支持"XML"
功能,则始终引发异常,因为命名空间是由XML定义的。 - 自:
- 1.4,DOM Level 2
-
createAttributeNS
- 参数:
-
namespaceURI
- 要创建的属性的命名空间URI。 -
qualifiedName
- 要实例化的属性的限定名称。 - 返回:
-
一个具有以下属性的新
Attr
对象:Attr
对象的属性属性 值 Node.nodeName
qualifiedName Node.namespaceURI
namespaceURI
Node.prefix
从 qualifiedName
中提取的前缀,如果没有前缀则为null
Node.localName
从 qualifiedName
中提取的本地名称Attr.name
qualifiedName
Node.nodeValue
空字符串 - 抛出:
-
DOMException
- INVALID_CHARACTER_ERR: 如果指定的qualifiedName
不符合正在使用的XML版本中Document.xmlVersion
属性中指定的XML名称。
NAMESPACE_ERR: 如果qualifiedName
是格式不正确的限定名称,如果qualifiedName
具有前缀且namespaceURI
为null
,如果qualifiedName
具有前缀为"xml"且namespaceURI
与" http://www.w3.org/XML/1998/namespace"不同,如果qualifiedName
或其前缀为"xmlns"且namespaceURI
与"http://www.w3.org/2000/xmlns/"不同,或者如果namespaceURI
为"http://www.w3.org/2000/xmlns/"且qualifiedName
或其前缀均不为"xmlns"。
NOT_SUPPORTED_ERR: 如果当前文档不支持"XML"
特性,则始终抛出。 - 自版本:
- 1.4, DOM Level 2
-
getElementsByTagNameNS
返回一个按文档顺序排列的所有具有给定本地名称和命名空间URI的Elements
的NodeList
。- 参数:
-
namespaceURI
- 要匹配的元素的命名空间URI。特殊值"*"
匹配所有命名空间。 -
localName
- 要匹配的元素的本地名称。特殊值"*"匹配所有本地名称。 - 返回:
-
包含所有匹配的
Elements
的新NodeList
对象。 - 自版本:
- 1.4, DOM Level 2
-
getElementById
返回具有给定值的ID属性的Element
。如果不存在这样的元素,则返回null
。如果有多个元素具有具有该值的ID属性,则返回的结果是未定义的。
DOM实现应使用属性Attr.isId
来确定属性是否为ID类型。注意: 名称为"ID"或"id"的属性除非已定义,否则不属于ID类型。
- 参数:
-
elementId
- 元素的唯一id
值。 - 返回:
-
匹配的元素或如果没有则返回
null
。 - 自版本:
- 1.4, DOM Level 2
-
getInputEncoding
String getInputEncoding()指定在解析时用于此文档的编码。当不知道时,此值为null
,例如在内存中创建Document
时。- 自版本:
- 1.5, DOM Level 3
-
getXmlEncoding
String getXmlEncoding()- 自版本:
- 1.5, DOM Level 3
-
getXmlStandalone
boolean getXmlStandalone()指定作为XML声明的一部分的文档是否是独立的。当未指定时,此值为false
。注意: 在设置此属性时不会对值进行验证。应用程序应使用带有"validate"参数的
Document.normalizeDocument()
来验证该值是否符合在[XML 1.0]中定义的独立文档声明的有效性约束。- 自版本:
- 1.5, DOM Level 3
-
setXmlStandalone
指定作为XML声明的一部分的文档是否是独立的。当未指定时,此值为false
。注意: 在设置此属性时不会对值进行验证。应用程序应使用带有"validate"参数的
Document.normalizeDocument()
来验证该值是否符合在[XML 1.0]中定义的独立文档声明的有效性约束。- 抛出:
-
DOMException
- NOT_SUPPORTED_ERR: 如果此文档不支持"XML"特性。 - 自版本:
- 1.5, DOM Level 3
-
getXmlVersion
String getXmlVersion()指定作为XML声明的一部分的文档的版本号。如果没有声明且此文档支持"XML"特性,则值为"1.0"
。如果此文档不支持"XML"特性,则值始终为null
。更改此属性将影响检查XML名称中的无效字符的方法。应用程序应调用Document.normalizeDocument()
以检查已经存在于此Document
中的Node
中的无效字符。
DOM应用程序可以使用参数值为"XMLVersion"和"1.0"(分别)的DOMImplementation.hasFeature(feature, version)
方法来确定实现是否支持[XML 1.0]。DOM应用程序可以使用参数值为"XMLVersion"和"1.1"(分别)的相同方法来确定实现是否支持[XML 1.1]。在这两种情况下,为了支持XML,实现还必须支持此规范中定义的"XML"特性。支持"XMLVersion"特性版本的Document
对象在使用Document.xmlVersion
时不得为相同版本号引发NOT_SUPPORTED_ERR
异常。- 自版本:
- 1.5, DOM Level 3
-
setXmlVersion
指定作为XML声明的一部分的文档的版本号。如果没有声明且此文档支持"XML"特性,则值为"1.0"
。如果此文档不支持"XML"特性,则值始终为null
。更改此属性将影响检查XML名称中的无效字符的方法。应用程序应调用Document.normalizeDocument()
以检查已经存在于此Document
中的Node
中的无效字符。
DOM应用程序可以使用参数值为"XMLVersion"和"1.0"(分别)的DOMImplementation.hasFeature(feature, version)
方法来确定实现是否支持[XML 1.0]。DOM应用程序可以使用参数值为"XMLVersion"和"1.1"(分别)的相同方法来确定实现是否支持[XML 1.1]。在这两种情况下,为了支持XML,实现还必须支持此规范中定义的"XML"特性。支持"XMLVersion"特性版本的Document
对象在使用Document.xmlVersion
时不得为相同版本号引发NOT_SUPPORTED_ERR
异常。- 抛出:
-
DOMException
- 如果版本设置为此Document
不支持的值,或者如果此文档不支持"XML"特性,则引发NOT_SUPPORTED_ERR。 - 自版本:
- 1.5, DOM Level 3
-
getStrictErrorChecking
boolean getStrictErrorChecking()指定是否强制执行错误检查。当设置为false
时,实现可以不测试通常在DOM操作上定义的每种可能的错误情况,并且在使用Document.normalizeDocument()
时不引发任何DOMException
或报告错误。在出现错误的情况下,行为是未定义的。此属性默认为true
。- 自版本:
- 1.5, DOM Level 3
-
setStrictErrorChecking
void setStrictErrorChecking(boolean strictErrorChecking) 指定是否强制执行错误检查。当设置为false
时,实现可以不测试通常在DOM操作上定义的每种可能的错误情况,并且在使用Document.normalizeDocument()
时不引发任何DOMException
或报告错误。在出现错误的情况下,行为是未定义的。此属性默认为true
。- 自版本:
- 1.5, DOM Level 3
-
getDocumentURI
String getDocumentURI()文档的位置,如果未定义或者Document
是使用DOMImplementation.createDocument
创建的,则为null
。在设置此属性时不执行词法检查;这可能导致在使用Node.baseURI
时返回null
值。
注意,当Document
支持"HTML"特性[DOM Level 2 HTML]时,HTML BASE元素的href属性优先于此属性计算Node.baseURI
。- 自版本:
- 1.5, DOM Level 3
-
setDocumentURI
文档的位置,如果未定义或者使用DOMImplementation.createDocument
创建Document
,则为null
。设置此属性时不执行词法检查;当使用Node.baseURI
时可能会导致返回null
值。
注意,当Document
支持特性 "HTML" [DOM Level 2 HTML] 时,计算Node.baseURI
时,HTML BASE 元素的 href 属性优先于此属性。- 自版本:
- 1.5, DOM Level 3
-
adoptNode
尝试将另一个文档中的节点移入此文档。如果支持,会更改源节点及其子节点的ownerDocument
,以及如果存在附加属性节点,则会更改这些属性节点的所有者。如果源节点有父节点,则首先将其从父节点的子节点列表中移除。这实际上允许将一个子树从一个文档移动到另一个文档(与importNode()
不同,后者会创建源节点的副本而不是移动它)。当失败时,应用程序应改用Document.importNode()
。请注意,如果被采用的节点已经是此文档的一部分(即源文档和目标文档相同),则此方法仍会将源节点从其父节点的子节点列表中移除(如果有的话)。以下列表描述了每种节点类型的具体情况。- ATTRIBUTE_NODE
-
将采用的
Attr
的ownerElement
属性设置为null
,并在采用的Attr
上将specified
标志设置为true
。递归采用源Attr
的后代。 - DOCUMENT_FRAGMENT_NODE
- 递归采用源节点的后代。
- DOCUMENT_NODE
-
无法采用
Document
节点。 - DOCUMENT_TYPE_NODE
-
无法采用
DocumentType
节点。 - ELEMENT_NODE
- 采用源元素的 Specified 属性节点。默认属性将被丢弃,但如果被采用的文档为此元素名称定义了默认属性,则会分配这些属性。递归采用源元素的后代。
- ENTITY_NODE
-
无法采用
Entity
节点。 - ENTITY_REFERENCE_NODE
-
仅采用
EntityReference
节点本身,后代将被丢弃,因为源文档和目标文档可能以不同方式定义实体。如果被导入的文档为此实体名称提供了定义,则将分配其值。 - NOTATION_NODE
-
无法采用
Notation
节点。 - PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
- 这些节点都可以被采用。无具体规定。
注意: 与
Document.importNode()
方法不同,此方法不会创建新节点,因此不会引发INVALID_CHARACTER_ERR
异常,应用程序应使用Document.normalizeDocument()
方法检查导入的名称是否不符合正在使用的 XML 版本的 XML 名称。- 参数:
-
source
- 要移入此文档的节点。 - 返回:
-
被采用的节点,如果此操作失败(例如源节点来自不同的实现),则为
null
。 - 抛出:
-
DOMException
- NOT_SUPPORTED_ERR: 如果指定节点的类型为DOCUMENT
或DOCUMENT_TYPE
。
NO_MODIFICATION_ALLOWED_ERR: 当源节点为只读时引发。 - 自版本:
- 1.5, DOM Level 3
-
getDomConfig
DOMConfiguration getDomConfig()在调用Document.normalizeDocument()
时使用的配置。- 自版本:
- 1.5, DOM Level 3
-
normalizeDocument
void normalizeDocument()此方法的作用就像文档经历保存和加载循环,将文档放入 "正常" 形式。因此,此方法会更新EntityReference
节点的替换树,并规范化Text
节点,如Node.normalize()
方法中所定义。
否则,实际结果取决于设置在Document.domConfig
对象上的特性,以及实际执行的操作。值得注意的是,此方法还可以使文档命名空间符合描述的算法,检查字符规范化,移除CDATASection
节点等。有关详细信息,请参阅DOMConfiguration
。// 保留文档中定义的信息集(Java 示例) DOMConfiguration docConfig = myDocument.getDomConfig(); docConfig.setParameter("infoset", Boolean.TRUE); myDocument.normalizeDocument();
如果支持变异事件,则会生成事件以反映文档上发生的更改。
如果在调用此方法时发生错误,例如尝试更新只读节点或者Node.nodeName
包含根据正在使用的 XML 版本的 XML 名称无效字符,将使用与 "error-handler " 参数关联的DOMErrorHandler
对象报告错误或警告(DOMError.SEVERITY_ERROR
或DOMError.SEVERITY_WARNING
)。请注意,如果实现无法从错误中恢复,此方法还可能报告致命错误(DOMError.SEVERITY_FATAL_ERROR
)。- 自版本:
- 1.5, DOM Level 3
-
renameNode
重命名类型为ELEMENT_NODE
或ATTRIBUTE_NODE
的现有节点。
在可能的情况下,这只是更改给定节点的名称,否则会创建一个具有指定名称的新节点,并按照以下描述替换现有节点。
如果无法简单更改给定节点的名称,则执行以下操作:创建一个新节点,将任何注册的事件侦听器注册到新节点上,从旧节点中删除附加到该节点的任何用户数据,如果旧节点有父节点,则将其从父节点中移除,将子节点移动到新节点,如果重命名的节点是一个Element
,则其属性将移动到新节点,新节点将插入到其父节点的子节点列表中原来的位置,如果有的话,将附加到旧节点的用户数据附加到新节点上。
当要重命名的节点是一个附加到Element
的Attr
时,首先将节点从Element
属性映射中移除。然后,一旦按照上述方式修改现有节点或创建新节点进行重命名,就将其放回。
此外,- 触发用户数据事件
NODE_RENAMED
, - 如果实现支持特性 "MutationNameEvents",则此方法中涉及的每个变异操作都会触发适当的事件,最终会触发事件 {
http://www.w3.org/2001/xml-events
,DOMElementNameChanged
} 或 {http://www.w3.org/2001/xml-events
,DOMAttributeNameChanged
}。
- 参数:
-
n
- 要重命名的节点。 -
namespaceURI
- 新的命名空间 URI。 -
qualifiedName
- 新的限定名称。 - 返回:
- 重命名后的节点。这可以是指定的节点,也可以是为替换指定节点而创建的新节点。
- 抛出:
-
DOMException
- NOT_SUPPORTED_ERR: 如果指定节点的类型既不是ELEMENT_NODE
也不是ATTRIBUTE_NODE
,或者如果实现不支持重命名文档元素。
INVALID_CHARACTER_ERR: 如果新的限定名称不是根据Document.xmlVersion
属性中指定的正在使用的 XML 版本的 XML 名称。
WRONG_DOCUMENT_ERR: 当指定节点是从与此文档不同的文档创建时引发。
NAMESPACE_ERR: 如果qualifiedName
是格式错误的限定名称,如果qualifiedName
具有前缀且namespaceURI
为null
,或者如果qualifiedName
具有前缀为 "xml" 且namespaceURI
与 " http://www.w3.org/XML/1998/namespace" [XML Namespaces] 不同。还会在重命名的节点是属性时引发,如果qualifiedName
或其前缀为 "xmlns" 且namespaceURI
与 "http://www.w3.org/2000/xmlns/" 不同。 - 自版本:
- 1.5, DOM Level 3
- 触发用户数据事件
-