使用DOM操作XML文件之DOM下基本API

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huiting_liu/article/details/65938928
 在DOM中,系统将文件解析为树形的数据结构,这样就很容易对其进行遍历、删除、修改等操作。
 在JDK中,对DOM的操作API主要集中在包org.w3c.dom中,在org.w3c.dom中,所有内容都被解释为节点。
  1. org.w3c.dom.Node

     该包是xml中所有API的父接口,里面提供了对节点的基本操作,如获取节点信息、获取子节点、添加节点等。Node(节点)可以是元素节点、属性节点、文本节点等。
    
Node对象常用的属性:
属性 描述
childNodes 返回节点到子节点的节点列表。
firstChild 返回节点的首个子节点。
lastChild 返回节点的最后一个子节点。
localName 返回节点的本地名称。
namespaceURI 返回节点的命名空间 URI。
nextSibling 返回节点之后紧跟的同级节点。
nodeName 返回节点的名称,根据其类型。
nodeType 返回节点的类型。
nodeValue 设置或返回节点的值,根据其类型。
ownerDocument 返回节点的根元素(document 对象)。
parentNode 返回节点的父节点。
textContent 设置或返回节点及其后代的文本内容。
Node 对象常用方法:
方法 描述
appendChild() 向节点的子节点列表的结尾添加新的子节点。
cloneNode() 复制节点。
getUserData(key) 返回与此节点上的某个键相关联的对象。此对象必须首先通过使用相同的键来调用 setUserData 被设置到此节点。
hasAttributes() 判断当前节点是否拥有属性。
hasChildNodes() 判断当前节点是否拥有子节点。
insertBefore() 在指定的子节点前插入新的子节点。
isDefaultNamespace(URI) 返回指定的命名空间 URI 是否为默认。
isEqualNode() 检查两个节点是否相等。
isSameNode() 检查两个节点是否是相同的节点。
isSupported() 返回当前节点是否支持某个特性。
lookupNamespaceURI() 返回匹配指定前缀的命名空间 URI。
normalize() 合并相邻的Text节点并删除空的Text节点。
removeChild() 删除(并返回)当前节点的指定子节点。
replaceChild() 用新节点替换一个子节点。
selectNodes() 用一个 XPath 表达式查询选择节点。
transformNode() 使用 XSLT 把一个节点转换为一个字符串。
transformNodeToObject() 使用 XSLT 把一个节点转换为一个文档。

2. org.w3c.dom.Document

     Document 对象代表整个 XML 文档。
     Document 对象是一棵文档树的根,可为我们提供对文档数据的最初(或最顶层)的访问入口。用于元素节点、文本节点、注释、处理指令等均无法存在于 document 之外,document 对象同样提供了创建这些对象的方法。Node 对象提供了一个 ownerDocument 属性,此属性可把它们与在其中创建它们的 Document 关联起来。
Document 对象的常用属性:
属性 描述
async 规定 XML 文件的下载是否应当被同步处理。
childNodes 返回属于文档的子节点的节点列表。
doctype 返回与文档相关的文档类型声明 (DTD)。
documentElement 返回文档的根节点
documentURI 设置或返回文档的位置
firstChild 返回文档的首个子节点
inputEncoding 返回用于文档的编码方式(在解析时)。
lastChild 返回文档的最后一个子节点。
nodeName 依据节点的类型返回其名称。
nodeType 返回节点的节点类型。
nodeValue 根据节点的类型来设置或返回节点的值。
xmlEncoding 返回文档的编码方法。
xmlStandalone 设置或返回文档是否为 standalone。
xmlVersion 设置或返回文档的 XML 版本。
Document 对象的常用方法:
方法 描述
adoptNode(sourcenode) 从另一个文档向本文档选定一个节点,然后返回被选节点。
createAttribute(name) 创建拥有指定名称的属性节点,并返回新的 Attr 对象。
createAttributeNS(uri,name) 创建拥有指定名称和命名空间的属性节点,并返回新的 Attr 对象。
createComment() 创建注释节点。
createDocumentFragment() 创建空的 DocumentFragment 对象,并返回此对象。
createElement() 创建元素节点
createEntityReference(name) 创建 EntityReference 对象,并返回此对象。
createRange() 创建 Range 对象,并返回此对象。
createTextNode() 创建文本节点。
getElementById() 查找具有指定的唯一 ID 的元素。
getElementsByTagName() 返回所有具有指定名称的元素节点。
getElementsByTagNameNS() 返回所有具有指定名称和命名空间的元素节点。
importNode() 把一个节点从另一个文档复制到该文档以便应用。
loadXML() 通过解析XML标签字符串来组成文档。
renameNode() 重命名元素或者属性节点。

3. org.w3c.dom.Element

      Element 对象表示 XML 文档中的元素。元素可包含属性、其他元素或文本。如果元素含有文本,则在文本节点中表示该文本。
Element 对象的常用属性:
属性 描述
attributes 返回元素的属性的 NamedNodeMap
childNodes 返回元素的子节点的 NodeList
firstChild 返回元素的首个子节点
lastChild 返回元素的最后一个子节点
localName 返回元素名称的本地部分
nodeName 返回节点的名称,依据其类型。
nodeType 返回节点的类型
ownerDocument 返回元素所属的根元素 (document 对象)
parentNode 返回元素的父节点
tagName 返回元素的名称
textContent 设置或返回元素及其后代的文本内容
Element 对象的常用方法:
方法 描述
appendChild() 向节点的子节点列表末尾添加新的子节点。
cloneNode() 克隆节点。
getAttribute() 返回属性的值。
getAttributeNS() 返回属性的值。
getAttributeNode() 以 Attribute 对象返回属性节点。
getElementsByTagName() 找到具有指定标签名的子孙元素。
hasAttribute() 返回元素是否拥有指定的属性。
hasAttributeNS() 返回元素是否拥有指定的属性。
hasAttributes() 返回元素是否拥有属性。
hasChildNodes() 返回元素是否拥有子节点。
removeAttribute() 删除指定的属性。
removeAttributeNode() 删除指定的属性节点。
removeChild() 删除子节点。
replaceChild() 替换子节点。
setAttribute() 添加新属性。
setAttributeNode() 添加新的属性节点。

4. org.w3c.dom.Attr

     Attr 对象表示 Element 对象的属性。由于 Attr 对象也是一种节点,因此它继承 Node 对象的属性和方法。不过属性无法拥有父节点,同时属性也不被认为是元素的子节点,对于许多 Node 对象的属性来说都将返回 null。
Attr 对象的常用属性
属性 描述
isId 如果属性是 id 类型,则返回 true,否则返回 false。
localName 返回属性名称的本地部分。
name 返回属性的名称。
nodeName 返回节点的名称,依据其类型。
nodeType 返回节点的类型。
nodeValue 设置或返回节点的值,依据其类型。
ownerDocument 返回属性所属的根元素(document对象)。
ownerElement 返回属性所附属的元素节点。
textContent 设置或返回属性的文本内容。
text 返回属性的文本。IE-only。
value 设置或返回属性的值。

5. org.w3c.dom.NodeList

     NodeList 对象代表一个有顺序的节点列表。我们可通过节点列表中的节点索引号来访问列表中的节点(索引号由0开始)。节点列表可保持其自身的更新。如果节点列表或 XML 文档中的某个元素被删除或添加,列表也会被自动更新。
NodeList 对象的属性:
属性 描述
length 可返回节点列表中的节点数目。
NodeList 对象的方法:
方法 描述
item() 可返回节点列表中处于指定的索引号的节点。

猜你喜欢

转载自blog.csdn.net/huiting_liu/article/details/65938928