一、常用方式:
①DOM ②SAX ③JDOM ④.DOM4J
① DOM(Document Object Model):
文档对象模型,是官方推荐的标准,与平台和语言无关。 会将xml中的文件内容以树的结构一次性加载到内存中,可以对xml中的文档中的内容进行随机访问或修改的操作。但是对于大文档来说解析效率低下,内存成本高。
② SAX(Simple Api For Xml):
简单应用程序接口 ,以事件为驱动,需要哪些数据再加载和解析哪些内容,解析速度快,占用内存少。 但是不会将内容加载到内存,使用起来不方便,反而会增加程序的负担。
③ JDOM(java和DOM的结合体)
是基于java平台使用的,简单高效,但也需要加载整个文档,对内容容量要求高。
④ DOM4J:
是一个java的XML的API,类似于JDOM,用来读写XML文件,性能优异、功能强大、简单易用,且开源。 * 是目前最流行、最好用的XML解析工具,解析XML速度最快。
二、使用dom4j解析xml文档的大致步骤
1、创建SAXReader
2、使用SAXReader读取要解析的XML文档,并生成对应的Document对象。 这一步也是DOM解析耗时耗资源的地方,因为会先将XML文档全部读取完毕,并内建整棵树结构,封装到Document对象中。
3、通过Document对象获取根元素。
4、按照XML的结构从根元素开始逐级获取子元素,以达到遍历XML文档的目的。
三、Element
该类的每一个实例都用于表示xml文档中的一对标签,其提供了很多便于获取信息的相关方法:
1、方法们:
[String] getName():获取标签的名字
[String] getText():获取标签中间的文本
[String] elementTxt(String name):直接利用标签名获取文本 =element(String name).getTxt()
[Element] element(String name):获取当前标签中指定名字的标签
[List] elements():获取当前标签中的所有子标签
[List] elements(String name):获取当前标签中指定名字的所有同名子标签
[Attribute] attribute("id"):获取标签的属性
[String] getValue():获取属性值
[String] attributeValue(String name):直接通过属性名获取属性值