常见的解析方式和解析器:
开发中常见的三种解析方式:
-
DOM:要求解析器把整个XML文档装载到内存,并解析成一个Document对象。(DOM树)
优点:元素与元素之间保留结构关系,故可以进行增删改查操作。 缺点:XML文档过大,可能出现内存溢出显现。
-
SAX:是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。并以事件驱动的方式进行具体解析,每执行一行,都将触发对应的事件。(了解)
优点:处理速度快,可以处理大文件 缺点:只能读,逐行后将释放资源。
-
PULL:Android内置的XML解析方式,类似SAX。(了解)
解析器:就是根据不同的解析方式提供的具体实现。有的解析器操作过于繁琐,为了方便开发人员,提供了易于操作的解析开发包。
常见的解析开发包:
- JAXP:sun公司提供支持DOM和SAX开发包
- JDom:dom4j的兄弟
- jsoup:一种处理HTML特定解析开发包
- dom4j:比较常用的解析开发包,hibernate底层采用。
dom解析原理和结构模型:
原理: XML DOM 将整个XML文档加载到内存,生成一个DOM树,并获得一个Document对象,通过Document对象就可以对DOM进行操作
DOM中的核心概念就是节点,在XML文档中的元素、属性、文本等,在DOM中都是节点!
DOM4J
DOM4J是一个Java的XML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,如今可以看到越来越多的Java软件都在使用DOM4J来读写XML。
如果想要使用dom4j,需要引入支持dom4j的jar包 dom4j-1.6.1.jar
dom4j 必须使用核心类SaxReader加载xml文档获得Document,通过Document对象获得文档的根元素,然后就可以操作了。
常见的API: