xml学习笔记(DOM重要接口)
Dom是w3c定义的一组和程序,系统无关的规则。Dom的几个主要接口。
1:Document接口
Document接口代表了整个xml文档,提供了对文档中的数据进行访问和操作的入口。由于元素,文本节点,注释,处理指令等都不能脱离文档的上下文关系而独立存在,所有在Document结论提供了创建其他节点的对象的方法。通过该方法创建的节点对象都有一个ownerDocument属性,用来表明当前节点是由谁创建的以及节点同Document之间的联系
Document节点是Dom树中的根节点,也即对xml文档进行操作的入口节点,通过Document节点,可以访问到文档中的其他节点
属性:
Doctype DocumentType类型的只读属性 ,记录文档的类型声明
documentElement 为访问文档的根元素提供了一个简单的方法
方法
CreateAttribute?? 创建一个具有给定名称的属性节点然后可以利用setAttributeNode方法把改属性设置为某个元素的属性
createElement??? 创建一个指定类型的元素节点
createTextNode 创建一个具有指定的字符串内容的文本节点
getElementbyID 返回一个具有给定ID的元素节点,如果没有这样的元素存在就返回null
getElementByTagName 返回一个节点的集合(NodeList)该集合中所有的元素都具有参数中所给定的标记名,集合中的所有元素安装在Dom树中的前序排列进行排序
2:Node接口
Dom规范中有很大的一部分接口都是从Node接口继承过来的如:Element,attr,CDATASection等接口,都是从Node继承过来的
在DOM树中,一个node接口实例代表了树中的一个节点,DOM树中包含很多各种不同类型的节点,这些节点基本都是从Node继承过来的。Node接口定义了所有不同类型的节点都具有的属性和方法
node的属性:
attribute 只读属性 如果当前节点是Element_Node(元素节点)类型的节点
,则NameNodeMap中包含了当前节点的所有属性,如果当前的节点不是Element_Node,这属性值为null
childNodes 包含了当前节点的所有子节点,如果当前节点没有字节点,nodeList中就不包含任何节点
firstChild 当前节点的第一个子节点
lastChild 当前节点的最后一个子节点
nextSibling 当前节点上午直接后继节点
nodename 当前节点的名字,对于不同的节点类型,有不同的取值
nodeType 当前节点的类型
nodeValue 当前节点的值,对于不同的节点类型,该属性具有不同的取值
parentNode 当前节点的父节点
perviousSibling 当前节点的直接前驱节点
方法:
appendChild 把参数中传递过来的newChild添加到当前接受的所有的子节点列表的最后
hasChildNodes 判断当前节点是否有字节点
createElement 创建一个指定类型的元素节点
insertBefore(node,newchild,node,refchild)把节点newChild插入到当前节点的子节点refChild之前
removeChild 从当前节点的子节点中删除oldChild节点并返回oldChild
3:NodeList集合
NodeList接口提供了对节点集合的抽象定义,NodeList用于表示有顺序关系的一组节点
在DOM中,nodelist 的对象是动态的,也就是说对文档的改变,会之间反映到相关的NodeList对象中
NodeList中的每个item都可以通过一个索引来访问,该索引值从0开始
NodeList的属性length表示改节点集合中的节点个数,访问集合中的节点的合法索引值为0到length-1之间的数
item,返回节点集合中的第index个节点
4:NameNodeMap
实现了NameNodeMap接口的对象中包含了可以通过名字来访问节点的集合
NameNodeMap并不是从NodeList继承过来,NameNodeMap所包含的节点是无序的,实现了NameNodeMap接口对象所包含的节点也可以通过索引进行访问
getNameItem(string name) 返回给定名称的节点,如果没有改节点集合中没有这样节点,就返回null
item(long index) 返回节点集合中的第index个节点,index的取值从0
removeNamedItem(string name) 删除给定名称的节点 如果在当前节点集合中存在给定名称的节点,返回该节点
setNameItem(node arg) 把给定节点名的节点添加到当前节点集中,如果在当前节点集中已经存在相同节点明的节点了。那么就用现在节点替换已经存在的节点
最后,在Java中解析xml的时候要注意一点。Dom里面的主要几个类如Element,attribute,text 等类都死继承node接口(这是我学了好久才注意到的。希望大家不要象我那么笨)
好了,,就到这里吧(以上是我学习整理的笔记,如果侵犯了你的版权问题,请留言我马上处理)。
来源于:http://92java.iteye.com/blog/100180