-
- All Superinterfaces:
-
Node
- All Known Subinterfaces:
-
HTMLDocument
public interface Document extends Node
Document
接口表示整个HTML或XML文档。 从概念上讲,它是文档树的根,并提供对文档数据的主要访问。由于元素,文本节点,注释,处理指令等不能存在于
Document
的上下文Document
,因此Document
接口还包含创建这些对象所需的工厂方法。 创建的Node
对象具有ownerDocument
属性,该属性将它们与创建其上下文的Document
相关联。
-
-
字段汇总
-
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
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 Node
adoptNode(Node source)
尝试从另一个文档中采用节点到此文档。Attr
createAttribute(String name)
创建给定名称的Attr
。Attr
createAttributeNS(String namespaceURI, String qualifiedName)
创建给定限定名称和名称空间URI的属性。CDATASection
createCDATASection(String data)
创建一个CDATASection
节点,其值为指定的字符串。Comment
createComment(String data)
给定指定字符串,创建一个Comment
节点。DocumentFragment
createDocumentFragment()
创建一个空的DocumentFragment
对象。Element
createElement(String tagName)
创建指定类型的元素。Element
createElementNS(String namespaceURI, String qualifiedName)
创建给定限定名称和名称空间URI的元素。EntityReference
createEntityReference(String name)
创建一个EntityReference
对象。ProcessingInstruction
createProcessingInstruction(String target, String data)
给定指定的名称和数据字符串,创建一个ProcessingInstruction
节点。Text
createTextNode(String data)
给定指定的字符串,创建一个Text
节点。DocumentType
getDoctype()
与本文档相关的文档类型声明(参见DocumentType
)。Element
getDocumentElement()
这是一个便捷属性,允许直接访问作为文档的文档元素的子节点。String
getDocumentURI()
文档的位置或null
如果未定义)或Document
是使用DOMImplementation.createDocument
创建的。DOMConfiguration
getDomConfig()
调用Document.normalizeDocument()
时使用的配置。Element
getElementById(String elementId)
返回具有给定值的ID属性的Element
。NodeList
getElementsByTagName(String tagname)
返回NodeList
所有的Elements
文档顺序与给定的标签名称,包含在文档中。NodeList
getElementsByTagNameNS(String namespaceURI, String localName)
返回NodeList
的所有Elements
具有给定本地名称和命名空间URI在文档顺序。DOMImplementation
getImplementation()
处理此文档的DOMImplementation
对象。String
getInputEncoding()
一个属性,指定解析时用于此文档的编码。boolean
getStrictErrorChecking()
指定是否强制执行错误检查的属性。String
getXmlEncoding()
作为 XML declaration的一部分指定此文档的编码的属性。boolean
getXmlStandalone()
作为 XML declaration的一部分,指定此文档是否为独立的属性。String
getXmlVersion()
作为 XML declaration的一部分指定此文档的版本号的属性。Node
importNode(Node importedNode, boolean deep)
将节点从另一个文档导入到此文档,而不从原始文档中更改或删除源节点; 此方法创建源节点的新副本。void
normalizeDocument()
此方法就像文档正在进行保存和加载循环一样,将文档置于“正常”形式。Node
renameNode(Node n, String namespaceURI, String qualifiedName)
重命名类型为ELEMENT_NODE
或ATTRIBUTE_NODE
的现有节点。void
setDocumentURI(String documentURI)
文档的位置或null
如果未定义或Document
是使用DOMImplementation.createDocument
创建的)。void
setStrictErrorChecking(boolean strictErrorChecking)
指定是否强制执行错误检查的属性。void
setXmlStandalone(boolean xmlStandalone)
作为 XML declaration的一部分指定此文档是否为独立的属性。void
setXmlVersion(String xmlVersion)
作为 XML declaration的一部分指定此文档的版本号的属性。-
声明方法的接口 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
-
-
-
-
方法详细信息
-
getDoctype
DocumentType getDoctype()
与本文档相关的文档类型声明(请参阅DocumentType
)。 对于没有文档类型声明的XML文档,返回null
。 对于HTML文档,可以返回DocumentType
对象,与HTML文档中是否存在文档类型声明无关。
这提供了对DocumentType
节点的直接访问,该节点是此Document
子节点。 此节点可以在文档创建时设置,然后通过使用子节点操作方法(例如Node.insertBefore
或Node.replaceChild
。 但是请注意,虽然有些实现可以实例化不同类型的Document
对象支持更多的功能比“芯”,如“HTML” [ DOM Level 2 HTML ]的基础上,DocumentType
在创建时指定,改变它之后是不太可能导致在更改支持的功能。- 从以下版本开始:
- 1.4,DOM Level 3
-
getImplementation
DOMImplementation getImplementation()
处理此文档的DOMImplementation
对象。 DOM应用程序可以使用来自多个实现的对象。
-
getDocumentElement
Element getDocumentElement()
这是一个便捷属性,允许直接访问作为文档的文档元素的子节点。
-
createElement
Element createElement(String tagName) throws DOMException
创建指定类型的元素。 请注意,返回的实例实现了Element
接口,因此可以直接在返回的对象上指定属性。
此外,如果存在具有默认值的已知属性,Attr
自动创建表示它们的Attr
节点并将其附加到该元素。
要使用限定名称和名称空间URI创建元素,请使用createElementNS
方法。- 参数
-
tagName
- 要实例化的元素类型的名称。 对于XML,这是区分大小写的,否则它取决于使用的标记语言的区分大小写。 在这种情况下,DOM实现将名称映射到该标记的规范形式。 - 结果
-
一种新的
Element
与对象nodeName
属性设置为tagName
,和localName
,prefix
,和namespaceURI
设置为null
。 - 异常
-
DOMException
- INVALID_CHARACTER_ERR:如果指定的名称不是XML名称,则根据Document.xmlVersion
属性中指定的XML版本Document.xmlVersion
。
-
createDocumentFragment
DocumentFragment createDocumentFragment()
创建一个空的DocumentFragment
对象。- 结果
-
一个新的
DocumentFragment
。
-
createTextNode
Text createTextNode(String data)
给定指定的字符串,创建一个Text
节点。- 参数
-
data
- 节点的数据。 - 结果
-
新的
Text
对象。
-
createComment
Comment createComment(String data)
给定指定的字符串,创建一个Comment
节点。- 参数
-
data
- 节点的数据。 - 结果
-
新的
Comment
对象。
-
createCDATASection
CDATASection createCDATASection(String data) throws DOMException
创建一个CDATASection
节点,其值为指定的字符串。- 参数
-
data
-CDATASection
内容的数据。 - 结果
-
新的
CDATASection
对象。 - 异常
-
DOMException
- NOT_SUPPORTED_ERR:如果此文档是HTML文档,则引发此异常。
-
createProcessingInstruction
ProcessingInstruction createProcessingInstruction(String target, String data) throws DOMException
给定指定的名称和数据字符串,创建一个ProcessingInstruction
节点。- 参数
-
target
- 处理指令的目标部分。与Document.createElementNS
或Document.createAttributeNS
,对目标名称没有进行名称空间格式良好的检查。 应用程序应调用Document.normalizeDocument()
,并将参数“namespaces”设置为true
,以确保目标名称是命名空间格式良好。 -
data
- 节点的数据。 - 结果
-
新的
ProcessingInstruction
对象。 - 异常
-
DOMException
- INVALID_CHARACTER_ERR:如果指定的目标不是XML名称,则根据Document.xmlVersion
属性中指定的XML版本Document.xmlVersion
。
NOT_SUPPORTED_ERR:如果此文档是HTML文档,则引发此异常。
-
createAttribute
Attr createAttribute(String name) throws DOMException
创建给定名称的Attr
。 需要注意的是Attr
实例然后可以上设置Element
使用setAttributeNode
方法。
要使用限定名称和名称空间URI创建属性,请使用createAttributeNS
方法。- 参数
-
name
- 属性的名称。 - 结果
-
一种新的
Attr
与对象nodeName
属性设置为name
,和localName
,prefix
,和namespaceURI
设置为null
。 属性的值是空字符串。 - 异常
-
DOMException
- INVALID_CHARACTER_ERR:如果指定的名称不是XML名称,则根据Document.xmlVersion
属性中指定的XML版本Document.xmlVersion
。
-
createEntityReference
EntityReference createEntityReference(String name) throws DOMException
创建一个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:如果指定的名称不是XML名称,则根据Document.xmlVersion
属性中指定的XML版本Document.xmlVersion
。
NOT_SUPPORTED_ERR:如果此文档是HTML文档,则引发此异常。
-
getElementsByTagName
NodeList getElementsByTagName(String tagname)
返回NodeList
所有的Elements
文档顺序与给定的标签名称,包含在文档中。- 参数
-
tagname
- 要匹配的标记的名称。 特殊值“*”匹配所有标签。 对于XML,tagname
参数区分大小写,否则它取决于正在使用的标记语言的区分大小写。 - 结果
-
一个新的
NodeList
对象,包含所有匹配的Elements
。
-
importNode
Node importNode(Node importedNode, boolean deep) throws DOMException
将节点从另一个文档导入到此文档,而不从原始文档中更改或删除源节点; 此方法创建源节点的新副本。 返回的节点没有父节点; (parentNode
是null
)。
所有节点,导入节点创建由进口文档拥有的节点对象,具有属性值相同的源节点的nodeName
和nodeType
,加上与命名空间属性(prefix
,localName
,和namespaceURI
)。 与在cloneNode
操作中一样,源节点不会更改。 与导入的节点关联的用户数据不会被转移。 但是,如果已指定任何UserDataHandlers
以及相关数据,则在此方法返回之前将使用适当的参数调用这些处理程序。
其他信息将根据需要复制到nodeType
,尝试镜像XML或HTML源片段从一个文档复制到另一个文档时所期望的行为,并认识到这两个文档在XML情况下可能具有不同的DTD。 以下列表描述了每种节点类型的细节。- ATTRIBUTE_NODE
-
所述
ownerElement
属性被设置为null
和specified
标志被设置为true
所生成Attr
。 递归地导入源Attr
的后代,并重新组合结果节点以形成相应的子树。 请注意,deep
参数对Attr
节点没有影响; 他们在进口时总是带着孩子。 - DOCUMENT_FRAGMENT_NODE
-
如果
deep
选项设置为true
,则递归导入源DocumentFragment
的后代,并在导入的DocumentFragment
下重新组合生成的节点以形成相应的子树。 否则,这只会生成一个空的DocumentFragment
。 - DOCUMENT_NODE
-
Document
节点无法导入。 - DOCUMENT_TYPE_NODE
-
DocumentType
节点无法导入。 - ELEMENT_NODE
-
导入源元素的指定属性节点,并将生成的
Attr
节点附加到生成的Element
。 不会复制默认属性,但如果要导入的文档定义此元素名称的默认属性,则会分配这些属性。 如果importNode
deep
参数设置为true
,则会递归导入源元素的后代,并重新组合生成的节点以形成相应的子树。 - ENTITY_NODE
-
可以导入
Entity
节点,但是在当前版本的DOM中,DocumentType
是只读的。 将这些导入的节点添加到DocumentType
将被考虑添加到DOM的未来版本。在导入时,将publicId
systemId
和notationName
属性。 如果deep
被请求的导入,在所述源的后代Entity
递归地导入并重新组装得到的节点,以形成相应的子树。 - ENTITY_REFERENCE_NODE
-
即使请求导入
deep
,也只复制EntityReference
本身,因为源文档和目标文档可能以不同方式定义了实体。 如果要导入的文档提供此实体名称的定义,则会分配其值。 - NOTATION_NODE
-
可以导入
Notation
节点,但是在当前版本的DOM中,DocumentType
是只读的。 将这些导入的节点添加到DocumentType
将被考虑添加到DOM的未来版本。在导入时,将复制publicId
和systemId
属性。 请注意,deep
参数对此类型的节点没有影响,因为它们不能有任何子节点。 - PROCESSING_INSTRUCTION_NODE
-
导入的节点从源节点复制其
target
和data
值。请注意,deep
参数对此类节点没有影响,因为它们不能有任何子节点。 - TEXT_NODE,CDATA_SECTION_NODE,COMMENT_NODE
-
继承自
CharacterData
这三种类型的节点从CharacterData
节点复制它们的data
和length
属性。请注意,deep
参数对这些类型的节点没有影响,因为它们不能有任何子节点。
- 参数
-
importedNode
- 要导入的节点。 -
deep
- 如果是true
,则递归导入指定节点下的子树; 如果是false
,则仅导入节点本身,如上所述。 这对不能有任何的孩子,并在节点没有影响Attr
和EntityReference
节点。 - 结果
-
导入的节点属于此
Document
。 - 异常
-
DOMException
- NOT_SUPPORTED_ERR:如果不支持导入的节点类型,则引发此异常。
INVALID_CHARACTER_ERR:根据Document.xmlVersion
属性中指定的使用的XML版本,如果其中一个导入的名称不是XML名称,则Document.xmlVersion
此Document.xmlVersion
。 例如,将XML 1.1 [ XML 1.1 ]元素导入XML 1.0文档时可能会发生这种情况。 - 从以下版本开始:
- 1.4,DOM Level 2
-
createElementNS
Element createElementNS(String namespaceURI, String qualifiedName) throws DOMException
- 参数
-
namespaceURI
- 要创建的元素的名称空间URI。 -
qualifiedName
- 要实例化的元素类型的限定名称。 - 结果
-
具有以下属性的新
Element
对象: Attributes of theElement
object Attribute ValueNode.nodeName
qualifiedName
Node.namespaceURI
namespaceURI
Node.prefix
prefix, extracted fromqualifiedName
, ornull
if there is no prefixNode.localName
local name, extracted fromqualifiedName
Element.tagName
qualifiedName
- 异常
-
DOMException
- INVALID_CHARACTER_ERR:如果指定的qualifiedName
不是XML名称,则根据Document.xmlVersion
属性中指定的XML版本Document.xmlVersion
。
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/ ”,或者如果namespaceURI
为“ http://www.w3.org/2000/xmlns/ ”,而本qualifiedName
也不其前缀为“xmlns”。
NOT_SUPPORTED_ERR:如果当前文档不支持"XML"
功能,则始终抛出,因为名称空间是由XML定义的。 - 从以下版本开始:
- 1.4,DOM Level 2
-
createAttributeNS
Attr createAttributeNS(String namespaceURI, String qualifiedName) throws DOMException
- 参数
-
namespaceURI
- 要创建的属性的名称空间URI。 -
qualifiedName
- 要实例化的属性的限定名称。 - 结果
-
具有以下属性的新
Attr
对象: Attributes of theAttr
object Attribute ValueNode.nodeName
qualifiedNameNode.namespaceURI
namespaceURI
Node.prefix
prefix, extracted fromqualifiedName
, ornull
if there is no prefixNode.localName
local name, extracted fromqualifiedName
Attr.name
qualifiedName
Node.nodeValue
the empty string - 异常
-
DOMException
- INVALID_CHARACTER_ERR:如果指定的qualifiedName
不是根据Document.xmlVersion
属性中指定的XML版本使用的XML名称,则Document.xmlVersion
此Document.xmlVersion
。
NAMESPACE_ERR:如果qualifiedName
是格式错误的合格名称,如果qualifiedName
有前缀且namespaceURI
是null
,如果qualifiedName
的前缀为“xml”且namespaceURI
与“ http://www.w3.org/XML/1998/namespace ”不同,则qualifiedName
,如果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
-
getElementsByTagNameNS
NodeList getElementsByTagNameNS(String namespaceURI, String localName)
返回NodeList
的所有Elements
具有给定本地名称和命名空间URI在文档顺序。- 参数
-
namespaceURI
- 要匹配的元素的名称空间URI。 特殊值"*"
匹配所有名称空间。 -
localName
- 要匹配的元素的本地名称。 特殊值“*”匹配所有本地名称。 - 结果
-
一个新的
NodeList
对象,包含所有匹配的Elements
。 - 从以下版本开始:
- 1.4,DOM Level 2
-
getElementById
Element getElementById(String elementId)
返回具有给定值的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()
作为XML declaration的一部分指定此文档的编码的属性。 这是null
当未指定的,或当它是不知道,例如当如Document
在存储器已创建。- 从以下版本开始:
- 1.5,DOM Level 3
-
getXmlStandalone
boolean getXmlStandalone()
作为XML declaration的一部分指定此文档是否为独立的属性。 未指定时为false
。注意:设置此属性时,不会对该值进行验证。 应用程序应使用
Document.normalizeDocument()
与“验证”参数,以验证值相匹配的validity constraint for standalone document declaration如[定义XML 1.0 ]。- 从以下版本开始:
- 1.5,DOM Level 3
-
setXmlStandalone
void setXmlStandalone(boolean xmlStandalone) throws DOMException
作为XML declaration的一部分指定此文档是否为独立的属性。 未指定时为false
。注意:设置此属性时,不会对该值进行验证。 应用程序应使用
Document.normalizeDocument()
与“验证”参数,以验证值相匹配的validity constraint for standalone document declaration如[定义XML 1.0 ]。- 异常
-
DOMException
- NOT_SUPPORTED_ERR:如果本文档不支持“XML”功能,则引发此异常。 - 从以下版本开始:
- 1.5,DOM Level 3
-
getXmlVersion
String getXmlVersion()
作为XML declaration的一部分指定此文档的版本号的属性。 如果没有声明,并且此文档支持“XML”功能,则值为"1.0"
。 如果本文档不支持“XML”功能,则该值始终为null
。 更改此属性将影响检查XML名称中的无效字符的方法。 应用程序应调用Document.normalizeDocument()
以检查Node
中已包含此Document
无效字符。
DOM应用程序可以使用参数值为“XMLVersion”和“1.0”(分别)的DOMImplementation.hasFeature(feature, version)
方法来确定实现是否支持[ XML 1.0 ]。 DOM应用程序可以使用与参数值“XMLVersion”和“1.1”(分别)相同的方法来确定实现是否支持[ XML 1.1 ]。 在这两种情况下,为了支持XML,实现还必须支持本规范中定义的“XML”功能。Document
对象支持的版本为“XMLVersion”功能不能养NOT_SUPPORTED_ERR
使用时例外相同的版本号Document.xmlVersion
。- 从以下版本开始:
- 1.5,DOM Level 3
-
setXmlVersion
void setXmlVersion(String xmlVersion) throws DOMException
作为XML declaration的一部分指定此文档的版本号的属性。 如果没有声明,并且此文档支持“XML”功能,则值为"1.0"
。 如果此文档不支持“XML”功能,则值始终为null
。 更改此属性将影响检查XML名称中的无效字符的方法。 应用程序应调用Document.normalizeDocument()
以检查Node
中已包含此Document
无效字符。
DOM应用程序可以使用参数值为“XMLVersion”和“1.0”(分别)的DOMImplementation.hasFeature(feature, version)
方法来确定实现是否支持[ XML 1.0 ]。 DOM应用程序可以使用与参数值“XMLVersion”和“1.1”(分别)相同的方法来确定实现是否支持[ XML 1.1 ]。 在这两种情况下,为了支持XML,实现还必须支持本规范中定义的“XML”功能。 支持“XMLVersion”功能版本的Document
对象在使用Document.xmlVersion
时,Document.xmlVersion
针对相同版本号引发NOT_SUPPORTED_ERR
异常。- 异常
-
DOMException
- NOT_SUPPORTED_ERR:如果版本设置为此Document
不支持的值,或者此文档不支持“XML”功能,则Document
此Document
。 - 从以下版本开始:
- 1.5,DOM Level 3
-
getStrictErrorChecking
boolean getStrictErrorChecking()
指定是否强制执行错误检查的属性。 设置为false
,实现可以自由地不测试通常在DOM操作上定义的每个可能的错误情况,并且在使用Document.normalizeDocument()
不会在DOM操作上引发任何DOMException
或报告错误。 如果出现错误,则行为未定义。 默认情况下,此属性为true
。- 从以下版本开始:
- 1.5,DOM Level 3
-
setStrictErrorChecking
void setStrictErrorChecking(boolean strictErrorChecking)
指定是否强制执行错误检查的属性。 当设置为false
,实现可以自由地不测试通常在DOM操作上定义的每个可能的错误情况,并且在使用Document.normalizeDocument()
不会在DOM操作上引发任何DOMException
或报告错误。 如果出现错误,则行为未定义。 默认情况下,此属性为true
。- 从以下版本开始:
- 1.5,DOM Level 3
-
getDocumentURI
String getDocumentURI()
文档的位置或null
如果未定义或Document
是使用DOMImplementation.createDocument
创建的)。 设置此属性时不执行词法检查; 这可能会导致使用Node.baseURI
时返回null
值。
请注意,当Document
支持“HTML”[ DOM Level 2 HTML ]功能时,HTML BASE元素的href属性在计算Node.baseURI
时优先于此属性。- 从以下版本开始:
- 1.5,DOM Level 3
-
setDocumentURI
void setDocumentURI(String documentURI)
文档的位置或null
如果未定义或Document
是使用DOMImplementation.createDocument
创建的)。 设置此属性时不执行词法检查; 这可能会导致使用Node.baseURI
时返回null
值。
请注意,当Document
支持“HTML”[ DOM Level 2 HTML ]功能时,HTML BASE元素的href属性在计算Node.baseURI
时优先于此属性。- 从以下版本开始:
- 1.5,DOM Level 3
-
adoptNode
Node adoptNode(Node source) throws DOMException
尝试从另一个文档中采用节点到此文档。 如果支持,它将更改源节点的ownerDocument
及其子节点以及附加的属性节点(如果有)。 如果源节点具有父节点,则首先从其父节点的子节点列表中删除它。 这有效地允许将子树从一个文档移动到另一个文档(与importNode()
不同,后者创建源节点的副本而不是移动它)。 如果失败,应用程序应使用Document.importNode()
。 请注意,如果采用的节点已经是此文档的一部分(即源文档和目标文档相同),则此方法仍然具有从其父节点的子列表中删除源节点的效果(如果有)。 以下列表描述了每种节点类型的细节。- ATTRIBUTE_NODE
-
该
ownerElement
属性设置为null
和specified
标志设置为true
所采用的Attr
。 递归地采用源Attr
的后代。 - DOCUMENT_FRAGMENT_NODE
- 递归地采用源节点的后代。
- DOCUMENT_NODE
-
Document
节点无法采用。 - DOCUMENT_TYPE_NODE
-
DocumentType
节点不能采用。 - ELEMENT_NODE
- 采用源元素的指定属性节点。 默认属性将被丢弃,但如果采用的文档定义此元素名称的默认属性,则会分配这些属性。 递归地采用源元素的后代。
- 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
。// Keep in the document the information defined // in the XML Information Set (Java example) DOMConfiguration docConfig = myDocument.getDomConfig(); docConfig.setParameter("infoset", Boolean.TRUE); myDocument.normalizeDocument();
生成支持时的变异事件以反映文档上发生的变化。
如果在调用此方法期间发生错误,例如尝试更新只读节点或Node.nodeName
根据正在使用的XML版本包含无效字符,则将使用DOMErrorHandler
报告错误或警告(DOMError.SEVERITY_ERROR
或DOMError.SEVERITY_WARNING
)与“错误处理程序”参数关联的对象。 请注意,如果实现无法从错误中恢复,则此方法也可能会报告致命错误(DOMError.SEVERITY_FATAL_ERROR
)。- 从以下版本开始:
- 1.5,DOM Level 3
-
renameNode
Node renameNode(Node n, String namespaceURI, String qualifiedName) throws DOMException
重命名类型为ELEMENT_NODE
或ATTRIBUTE_NODE
的现有节点。
如果可能,这只是更改给定节点的名称,否则将创建具有指定名称的新节点,并使用新节点替换现有节点,如下所述。
如果无法简单地更改给定节点的名称,则执行以下操作:创建新节点,在新节点上注册任何已注册的事件侦听器,从该节点删除连接到旧节点的任何用户数据,旧节点从其父节点中移除(如果有),子节点将移动到新节点,如果重命名的节点是Element
其属性将移动到新节点,新节点将插入旧节点使用的位置如果它具有父节点的子节点列表,则附加到旧节点的用户数据将附加到新节点。
当重命名的节点是Element
仅移动指定的属性,根据新元素名称更新源自DTD的默认属性。 此外,实现可以更新其他模式的默认属性。 应用程序应使用Document.normalizeDocument()
来保证这些属性是最新的。
当要重命名的节点为Attr
被附接到一个Element
,首先删除的节点从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
,或者如果实现不支持重命名文档元素,则ATTRIBUTE_NODE
。
INVALID_CHARACTER_ERR:根据Document.xmlVersion
属性中指定的使用的XML版本,如果新的限定名称不是XML名称,则Document.xmlVersion
此Document.xmlVersion
。
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/ ”不同,则当重命名的节点是属性时,也会qualifiedName
此namespaceURI
。 - 从以下版本开始:
- 1.5,DOM Level 3
- 用户数据事件
-
-