1 解析概述
当将数据存储在XML后,我们就希望通过程序获得XML的内容。
如果我们使用Java基础所学习的IO知识是可以完成的,不过你需要非常繁琐的操作才可以完成,且开发中会遇到不同问题(只读、读写)。
人们为不同问题提供不同的解析方式,并提交对应的解析器,方便开发人员操作XML。
2 XML解析方式
开发中比较常见的解析方式有两种,如下
1. DOM:要求解析器把整个XML文档装载到内存,并解析成一个Document对象
优点:元素与元素之间保留结构关系,故可以进行增删改查操作
缺点:XML文档过大,可能出现内存溢出显现
2. SAX:是一种速度更快,更有效的方法。
它逐行扫描文档,一边扫描一边解析。
并以事件驱动的方式进行具体解析,每执行一行,都将触发对应的事件。(了解)
优点:占用内存少,处理速度快,可以处理大文件
缺点:只能读,逐行后将释放资源
3 XML常见的解析器
解析器:就是根据不同的解析方式提供的具体实现。有的解析器操作过于繁琐,为了方便开发人员, 有提供易于操作的解析开发包
JAXP:sun公司提供的解析器,支持DOM和SAX两种思想
DOM4J:一款非常优秀的解析器 , Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。 它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。
Jsoup:jsoup 是一款Java 的HTML解析器 ,也可以解析XML
PULL:Android内置的XML解析方式,类似SAX。