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
Modifier and Type | Method and Description |
---|---|
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()时使用的
Document.normalizeDocument() 。
|
Element |
getElementById(String elementId)
返回
Element 具有与给定值的ID属性。
|
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的一部分的
属性 ,指定此文档的版本号。
|
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
DocumentType getDoctype()
DocumentType
)。
对于没有文档类型声明的XML文档,返回null
。
对于HTML文档,可以返回DocumentType
对象,而不管HTML文档中是否存在文档类型声明。
DocumentType
节点,这个Document
子节点。
该节点可以在文档创建时设置,稍后通过使用子节点操作方法(例如Node.insertBefore
或Node.replaceChild
。
然而,请注意,虽然一些实现可以实例化支持除“核心”之外的其他功能的不同类型的Document
对象,例如“HTML”[ DOM Level 2 HTML ],基于在创建时DocumentType
DocumentType,之后更改它不太可能导致在更改支持的功能。
DOMImplementation getImplementation()
DOMImplementation
对象。
DOM应用程序可以使用来自多个实现的对象。
Element getDocumentElement()
Element createElement(String tagName) throws DOMException
Element
接口,因此可以直接在返回的对象上指定属性。
Attr
自动创建表示它们的Attr
个节点并附加到该元素。
createElementNS
方法。
tagName
- 要实例化的元素类型的名称。
对于XML,这是区分大小写的,否则取决于使用的标记语言的区分大小写。
在这种情况下,该名称将通过DOM实现映射到该标记的规范形式。
Element
与对象
nodeName
属性设置为
tagName
,和
localName
,
prefix
和
namespaceURI
设置为
null
。
DOMException
- INVALID_CHARACTER_ERR:如果指定的名称是不按照规定使用的XML版本的XML名称募集
Document.xmlVersion
属性。
DocumentFragment createDocumentFragment()
DocumentFragment
对象。
DocumentFragment
。
Comment createComment(String data)
Comment
节点。
data
- 节点的数据。
Comment
对象。
CDATASection createCDATASection(String data) throws DOMException
CDATASection
节点。
data
-
CDATASection
内容的数据。
CDATASection
对象。
DOMException
- NOT_SUPPORTED_ERR:如果此文档是HTML文档,则引发。
ProcessingInstruction createProcessingInstruction(String target, String data) throws DOMException
ProcessingInstruction
节点。
target
- 处理target
的目标部分。不像Document.createElementNS
或Document.createAttributeNS
,目标名称上没有对命名空间进行完整的检查。
应用程序应调用Document.normalizeDocument()
,其参数“namespaces”设置为true
,以确保目标名称的命名空间格式正确。
data
- 节点的数据。
ProcessingInstruction
对象。
DOMException
- INVALID_CHARACTER_ERR:如果指定的目标是不按照规定使用的XML版本的XML名称募集Document.xmlVersion
属性。
Attr createAttribute(String name) throws DOMException
Attr
。
请注意, Attr
实例可以使用setAttributeNode
方法设置在Element
上。
createAttributeNS
,请使用createAttributeNS
方法。
name
- 属性的名称。
Attr
与对象nodeName
属性设置为name
,和localName
, prefix
和namespaceURI
设置为null
。
属性的值为空字符串。
DOMException
- INVALID_CHARACTER_ERR:如果指定的名称是不按照规定使用的XML版本的XML名称募集
Document.xmlVersion
属性。
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版本的XML名称募集Document.xmlVersion
属性。
NodeList getElementsByTagName(String tagname)
NodeList
所有的
Elements
文档顺序与给定的标签名称,包含在文档中。
tagname
- 要匹配的标签的名称。
特殊值“*”匹配所有标签。
对于XML, tagname
参数区分大小写,否则取决于使用的标记语言的大小写敏感度。
NodeList
对象包含所有匹配的
Elements
。
Node importNode(Node importedNode, boolean deep) throws DOMException
parentNode
是null
)。
nodeName
和nodeType
,加上与命名空间属性( prefix
, localName
和namespaceURI
)。
与cloneNode
一样,源节点也没有改变。
与导入的节点关联的用户数据不会被转移。
但是,如果任何UserDataHandlers
已经与相关数据指定沿着这些处理器将与该方法返回之前适当的参数调用。
nodeType
,试图镜像预期如果XML或HTML源的片段从一个文档复制到另一个,认识到这两个文件可以具有在XML的情况下不同的DTD的行为。
以下列表描述了每种节点类型的细节。
ownerElement
属性被设置为null
和specified
标志被设置为true
所生成的Attr
。
源Attr
被递归导入,并且所生成的节点重新组合以形成相应的子树。
请注意, deep
参数对Attr
节点没有影响;
进口时,他们总是带着孩子。
deep
选项设置为true
,则源DocumentFragment
被递归导入,并且所生成的节点在导入的DocumentFragment
下重新DocumentFragment
以形成相应的子树。
否则,这只会产生一个空的DocumentFragment
。
Document
节点无法导入。
DocumentType
无法导入节点。
Attr
节点连接到所生成的Element
。
默认属性不被复制,但是如果要导入的文档定义了该元素名称的默认属性,那么它们将被分配。
如果importNode
deep
参数设置为true
,则源元素的后代将被递归导入,并将生成的节点重新组合以形成相应的子树。
Entity
节点可以导入,但是在当前版本的DOM中, DocumentType
是只读方式。
能力将这些导入的节点添加到DocumentType
将考虑除了未来DOM.On进口的发布, publicId
, systemId
和notationName
属性被复制。
如果deep
导入,源Entity
将被递归导入,并将生成的节点重新组合以形成相应的子树。
EntityReference
本身被复制,即使要求deep
导入,因为源和目的地文档可能不同地定义了实体。
如果导入的文档为此实体名称提供了定义,则会分配其值。
Notation
节点可以导入,但在当前版本的DOM中, DocumentType
是只读方式。
将这些导入的节点添加到DocumentType
将被考虑添加到将来的DOM.On导入中, publicId
和systemId
属性被复制。
请注意, deep
参数对此类型的节点没有影响,因为它们不能有任何子节点。
target
和data
值。请注意, deep
参数对此类型的节点没有影响,因为它们不能有任何子节点。
CharacterData
复制他们data
个length
从那些在源node.Note的属性deep
参数对这些类型的节点无效,因为它们不能有任何孩子。
importedNode
- 要导入的节点。
deep
- 如果true
,递归地导入指定节点下的子树;
如果false
,只导入节点本身,如上所述。
这对于不能有EntityReference
节点的节点,并且在Attr
和EntityReference
节点上没有影响。
Document
。
DOMException
- NOT_SUPPORTED_ERR:如果不支持正在导入的节点类型,则引发。
Document.xmlVersion
属性。
例如,当将XML 1.1 [ XML 1.1 ]元素导入XML 1.0文档时,可能会发生这种情况。
Element createElementNS(String namespaceURI, String qualifiedName) throws DOMException
namespaceURI
- 要创建的元素的命名空间URI。
qualifiedName
- 要实例化的元素类型的限定名称。
Element
对象具有以下属性:
Attribute Value Node.nodeName
qualifiedName
Node.namespaceURI
namespaceURI
Node.prefix
prefix, extracted from qualifiedName
, or null
if there is no prefix Node.localName
local name, extracted from qualifiedName
Element.tagName
qualifiedName
DOMException
- INVALID_CHARACTER_ERR:若指定的qualifiedName
不按照规定使用的XML版本的XML名称Document.xmlVersion
属性。
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”。
"XML"
功能,则始终抛出,因为命名空间是由XML定义的。
Attr createAttributeNS(String namespaceURI, String qualifiedName) throws DOMException
namespaceURI
- 要创建的属性的命名空间URI。
qualifiedName
- 要实例化的属性的限定名称。
Attr
对象具有以下属性:
Attribute Value Node.nodeName
qualifiedName Node.namespaceURI
namespaceURI
Node.prefix
prefix, extracted from qualifiedName
, or null
if there is no prefix Node.localName
local name, extracted from qualifiedName
Attr.name
qualifiedName
Node.nodeValue
the empty string
DOMException
- INVALID_CHARACTER_ERR:若指定的qualifiedName
不按照规定使用的XML版本的XML名称Document.xmlVersion
属性。
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”。
"XML"
功能,则始终抛出,因为命名空间是由XML定义的。
NodeList getElementsByTagNameNS(String namespaceURI, String localName)
NodeList
的所有
Elements
具有给定本地名称和命名空间URI在文档顺序。
namespaceURI
- 要匹配的元素的命名空间URI。
特殊值"*"
匹配所有命名空间。
localName
- 要匹配的元素的本地名称。
特殊值“*”与所有本地名称相匹配。
NodeList
对象包含所有匹配的
Elements
。
Element getElementById(String elementId)
Element
具有与给定值的ID属性。
如果不存在这样的元素,则返回null
。
如果多个元素的ID属性为该值,那么返回的元素是未定义的。
Attr.isId
来确定属性是否为类型ID。
注意:除非如此定义,否则名称为“ID”或“id”的属性不是类型ID。
elementId
- 元素的唯一
id
值。
null
如果没有。
String getInputEncoding()
null
当它是不知道的,如Document
是在内存中创建的。
String getXmlEncoding()
null
当未指定或不知道时,例如当内存中创建Document
时。
boolean getXmlStandalone()
false
当未指定。
注意:设置此属性时,不会对该值进行验证。 应用程序应使用Document.normalizeDocument()
与“验证”参数,以验证值相匹配的validity constraint for standalone document declaration如[定义XML 1.0 ]。
void setXmlStandalone(boolean xmlStandalone) throws DOMException
false
当未指定。
注意:设置此属性时,不会对该值进行验证。 应用程序应使用Document.normalizeDocument()
与“验证”参数,以验证值相匹配的validity constraint for standalone document declaration如[定义XML 1.0 ]。
DOMException
- NOT_SUPPORTED_ERR:如果此文档不支持“XML”功能,则引发。
String getXmlVersion()
"1.0"
。
如果此文档不支持“XML”功能,则该值始终为null
。
更改此属性将影响检查XML名称中无效字符的方法。
应用程序应该调用Document.normalizeDocument()
,以检查在无效字符Node
s表示已经是此的一部分Document
。
DOMImplementation.hasFeature(feature, version)
方法与参数值为“XMLVersion”和“1.0”(分别地),以确定是否实现支持[ XML 1.0 ]。
DOM应用程序可能使用与参数值“XMLVersion”和“1.1”(分别)相同的方法来确定实现是否支持[ XML 1.1 ]。
在这两种情况下,为了支持XML,实现还必须支持本规范中定义的“XML”功能。
Document
对象支持的版本为“XMLVersion”功能不能养NOT_SUPPORTED_ERR
使用时例外相同的版本号Document.xmlVersion
。
void setXmlVersion(String xmlVersion) throws DOMException
"1.0"
。
如果此文档不支持“XML”功能,则该值始终为null
。
更改此属性将影响检查XML名称中无效字符的方法。
应用程序应该调用Document.normalizeDocument()
,以检查在无效字符Node
s表示已经是此的一部分Document
。
DOMImplementation.hasFeature(feature, version)
方法来确定实现是否支持[ XML 1.0 ]。
DOM应用程序可能使用与参数值“XMLVersion”和“1.1”(分别)相同的方法来确定实现是否支持[ XML 1.1 ]。
在这两种情况下,为了支持XML,实现还必须支持本规范中定义的“XML”功能。
Document
对象支持的版本为“XMLVersion”功能不能养NOT_SUPPORTED_ERR
使用时例外相同的版本号Document.xmlVersion
。
DOMException
- NOT_SUPPORTED_ERR:如果版本设置为此
Document
不支持的值或者该文档不支持“XML”功能,则
Document
。
boolean getStrictErrorChecking()
false
,实行免费不测试通常在DOM操作上定义的每个可能的错误情况下,并没有提出任何DOMException
在DOM操作或者报告错误,而使用Document.normalizeDocument()
。
如果出现错误,行为是未定义的。
此属性默认为true
。
void setStrictErrorChecking(boolean strictErrorChecking)
false
,实行免费不测试通常在DOM操作上定义的每个可能的错误情况下,并没有提出任何DOMException
在DOM操作或者报告错误,而使用Document.normalizeDocument()
。
如果出现错误,行为是未定义的。
此属性默认为true
。
String getDocumentURI()
null
如果未定义)或Document
是否使用DOMImplementation.createDocument
创建。
设置此属性时不执行词法检查;
这可能会导致使用null
时返回的值为Node.baseURI
。
Document
支持功能“HTML”[ DOM Level 2 HTML ]时, Document
注意,当计算Document
时,HTML BASE元素的href属性优先于此Node.baseURI
。
void setDocumentURI(String documentURI)
null
如果未定义)或Document
是否使用DOMImplementation.createDocument
创建。
设置此属性时不执行词法检查;
这可能会导致一个null
使用时返回的值Node.baseURI
。
Document
支持功能“HTML”[ DOM Level 2 HTML ]时,当计算Node.baseURI时,HTML BASE元素的href属性优先于此Node.baseURI
。
Node adoptNode(Node source) throws DOMException
ownerDocument
,其子节点,以及附加的属性节点(如果有的话)。
如果源节点有父,则首先从其父列表的子列表中删除它。
这有效地允许将子树从一个文档移动到另一个文档(不像importNode()
创建源节点的副本而不是移动它)。
当它失败时,应用程序应该使用Document.importNode()
。
请注意,如果采用的节点已经是本文档的一部分(即源文档和目标文档是相同的),则该方法仍然具有从其父代的子列表中删除源节点的效果(如果有的话)。
以下列表描述了每种节点类型的细节。
ownerElement
属性设置为null
和specified
标志设置为true
所采用的Attr
。
源Attr
被递归地采用。
Document
节点不能采用。
DocumentType
节点不能采用。
Entity
节点不能采用。
EntityReference
节点本身被采用,后代被丢弃,因为源和目的地文档可能不同地定义了实体。
如果导入的文档为此实体名称提供了定义,则会分配其值。
Notation
节点不能采用。
注意:由于它不像Document.importNode()
方法那样创建新节点,因此此方法不会引发INVALID_CHARACTER_ERR
异常,应用程序应使用Document.normalizeDocument()
方法根据正在使用的XML版本检查导入的名称是否不是XML名称。
source
- 要移入此文档的节点。
null
如果此操作失败,例如源节点来自不同的实现。
DOMException
- NOT_SUPPORTED_ERR:如果源节点的类型为DOCUMENT
, DOCUMENT_TYPE
。
DOMConfiguration getDomConfig()
Document.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版本DOMError.SEVERITY_ERROR
或DOMError.SEVERITY_WARNING
)将使用报告DOMErrorHandler
与“错误处理程序”参数关联的对象。
注意,如果实现无法从错误中恢复,则此方法也可能会报告致命错误( DOMError.SEVERITY_FATAL_ERROR
)。
Node renameNode(Node n, String namespaceURI, String qualifiedName) throws DOMException
ELEMENT_NODE
或ATTRIBUTE_NODE
的现有节点。
Element
其属性移动到新节点,新节点将插入旧节点所在的位置要在其父节点的子节点列表中有一个,则附加到旧节点的用户数据被附加到新节点。
Element
仅移动指定的属性,根据新的元素名称更新来自DTD的默认属性。
此外,实现可以从其他模式更新默认属性。
应用程序应使用Document.normalizeDocument()
来保证这些属性是最新的。
Attr
被附接到一个Element
,首先删除的节点从Element
属性地图。
然后,一旦重命名,通过修改现有节点或如上所述创建一个新节点,它将被放回。
NODE_RENAMED
被触发, 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
时,或者实现不支持重命名文档元素时引发。
Document.xmlVersion
属性。
qualifiedName
是格式错误的限定名,如果qualifiedName
有前缀, namespaceURI
是null
,或者qualifiedName
的前缀是“xml”,namespaceURI与“ http://www.w3.org/XML/1998/namespace ”[ XML Namespaces ] namespaceURI
则引发。
还提出,当被重命名的节点是一个属性,如果qualifiedName
,或它的前缀,为“xmlns”和namespaceURI
距离“不同http://www.w3.org/2000/xmlns/ ”。