DOM和SAX
DOM的全称是Document Object Model,也即文档对象模型。基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合,应用程序挣是通过对这个对象模型的操作,来实现对XML文档数据的操作。
DOM接口提供了一种通过分层对象模型来访问XML文档信息的方式,这些分层对象模型依据XML的文档结构形成一颗节点树。也就是说,DOM强制使用树模型来访问XML文档中的信息。
SAX的全称是Simple APIs for XML,也即XML简单应用程序接口。SAX提供的顺序呢模式是一种顺序模式,这是一种快速读写XML数据的方式。应用程序通过这些事件处理函数实现对XML文档的访问,因而SAX接口也被称作事件驱动接口。
DOM的使用:
DOM的基本对象有5个:Document、Node、NodeList、Element和Attr。
我们总是先通过解析XML源文件而得到一个Document对象,然后再来执行后续的操作:
1、createAttribute(String):用给定的属性名创建一个Attr对象,并可在其后使用setAttributeNode方法来设置在某一个Element对象上面。
2、createElement(String):用给定的标签名创建一个element对象,代表XML文档中的一个标签,然后就可以在这个Element对象上添加属性或进行其他操作。
3、createTextNode(String):用给定的字符串创建一个Text对象,Text对象代表了标签或属性中所包含的纯文本字符串。
4、getElementsByTagName(String):返回一个NodeList对象,它包含了所有给定标签名字的标签。
5、getDocumentElement():返回一个代表这个DOM树的根节点的Element对象,也就是代表了XML文档根元素的那个对象。
Node对象是DOM结构中最为基本的对象,它代表了文档树中的一个抽象的节点。Node对象所包含的主要方法有:
1、appendChild(org.w3c.dom.Node):为这个节点增肌一个子节点,并放在所有子节点的最后。如果这个子节点已经存在,则先把它删掉再添加进去。
2、getFirstChild():如果节点存在子节点,则返回第一个子节点。(getLastChild()返回最后一个子节点)。
3、getNodeName():根据节点的类型返回节点的名称。
4、getNodeValue():返回节点的值。
Element对象代表的是XML文档中的标签元素,它继承于Node,也是Node的最主要的子对象。在标签中可以包含属性,因而Element对象中有存取其属性的方法。而任何Node中定义的方法,也可以用在Element对象上面。
1、getElementsByTagName(String):返回一个NodeList对象,它包含在这个标签中其下的子孙节点中具有给定标签名的标签。
2、getAttribute(String):返回标签中给定属性名称的属性值。因为XML文档中允许有实体属性出现,而这个方法对这些实体属性并不适用。这时需要用getAttributeNodes()方法得到一个Attr对象来进行进一步的操作。