在Java程序中读取XML文件的过程称为解析XML
1.解析XML文件的方式
1)DOM解析(java官方提供)
2)SAX解析(java官方提供)
3) JDOM解析(第三方提供)
4) DOM4J解析(第三方提供)
2.DOM解析XML的步骤
1)创建一个DocumentBuilderFactory的对象
2)创建一个DocumentBuilder对象
3)通过DocumentBuilder的parse(..)方法得到Document对象
4)通过getElementsByTagNam...)方法获取到节点的列表
5)通过for循环遍历每一个节点
6)得到每个节点的属性和属性值
7)得到每个节点的节点名和节点值
代码示例:
3.SAX解析方式
3.1SAX的概述
SAX,全称Simple API for XML,是一种以事件驱动的XMl API,SAX与DOM不同的是它边扫描边解析,自顶向下
依次解析,由于边扫描边解析,所以它解析XML具有速度快,占用内存少的优点
3.2SAX解析XML的步骤
1)创建SAXParserFactory的对象
2)创建SAXParser对象(解析器)
3)创建一个DefaultHandler的子类
4)调用parse方法
代码示例:
Book Default Handler类:
TestSAXPrase类:
XML文件:
输出结果:
4.JDOM方式解析XML文件:
4.1JDOM概述
JDOM是一种解析XML的Java工具包,它基于树型结构,利用纯Java的技术对XML文档实现解析。所以中适合于Java语言
4.2JDOM解析XML的步骤
1)创建一个SAXBuilder对象
2)调用build方法,得到Document对象(通过IO流)
3)获取根节点
4)获取根节点节点的直接子节点的集合
5)遍历集合
5.DOM4J解析XML数据(最常用)
DOM4J是一个Java的XML API,是JDOM的升级品,用来读写XML文件的
DOM4J解析XML的步骤
1)创建SAXReader对象
2)调用read方法
3)获取根元素
4)通过迭代器遍历直接节点
代码示例:
四种方法的比较:
1)DOM解析:
形成了树结构,有助于更好的理解、掌握,且代码容易编写。
解析过程中,树结构保存在内存中,方便修改。但是需要内存较大
2)SAX解析:
采用事件驱动模式,对内存耗费比较小。
适用于只处理XML文件中的数据时
3)JDOM解析:
仅使用具体类,而不使用接口。
API大量使用了Collections 类。
4)DOM4J解析:
JDOM的--种智能分支,它合并了许多超出基本XML文档表示的功能。
它使用接口和抽象基本类方法。
具有性能优异、灵活性好、功能强大和极端易用的特点。
是一个开放源码的文件