1.什么是XML?
Extend Markup Language(可扩展的标记语言)。
2.为什么要使用XML?
开放性:XML技术根据标准规范,允许在任何平台上读取和处理数据
简单性:XML文档是纯文本,可以自由地在两个不同系统之间交换数据
结构和内容分离: XML中数据的显示和数据本身时区分开的
可扩展性:使用XML可以按照自己的需要定制语言。
3.什么时候使用XML?
XML的应用范围非常广泛,但主要用于2个方面:
一、 用于配置文件(JAVA框架、WEB服务器、应用软件等)
二、交换数据(跨语言、跨平台、跨设备、跨数据库),可以将一篇XML看成一个小型的数据库
4.常用的解析XML技术:DOM/JDOM/DOM4J/SAX
5.JDOM和DOM4J的介绍
什么是JDOM?
JDOM是一个开源项目,它基于树形结构,利用纯JAVA对XML文档实现解析、生成、序列化。
使用JDOM的优点:
JDOM的目的是成为Java特定文档模型,它简化与XML的交互 并且比使用DOM实现更快。
JDOM提供了更简单的访问XML信息的基础方法。
除了XML文档之外,JDOM还可以访问其他数据源。
什么是DOM4J?
DOM4J是JDOM的一种智能分支。它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持、XML Schema支持以及用于大文档或流化文档的基于事件的处理。
它还提供了构建文档表示的选项,它通过DOM4J API和标准DOM接口具有并行访问功能。
DOM4J是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用DOM4J.
JDOM是JAVA语言特定的API,其中主要结构是类,所以编码方便。目前JDOM已经纳入JSR102规范。
DOM4J是JDOM的一个分支,提供了更加易用的API和XPath的支持
6.JDOM解析XML步骤
1.构建解析器SAXBuilder
2.将XML文件转换成document对象builder.build(filename);
3.获得根元素doc.getRootElement();
4.获得元素(element)集合root.getChildren();
5.遍历元素集合
7.JDOM生成XML步骤
1.实例化出要生成的文件的各个节点和属性
2.建立一个jdom的document对象,把根节点植入进去new Document(root);
3.构建树形结构
4.设置格式Format
5.实例化一个输出对象new XMLOutputter(format);
6.打开输出流,将document对象输出到xml文件out.output(doc, new FileOutputStream("fruits.xml"));
8.JDOM修改XML步骤
1.构建解析器SAXBuilder
2.将XML文件转换成document对象builder.build(filename);
3.获得根元素doc.getRootElement();
4.获得元素(element)集合root.getChildren();
5.遍历元素集合
6.修改文本内容或属性值
7.设置格式Format
8.实例化一个输出对象new XMLOutputter(format);
9.打开输出流,将document对象输出到xml文件out.output(doc, new FileOutputStream("fruits.xml"))
9.DOM4J解析xml步骤
1.构建解析器SAXReader
2.将XML文件转换成document对象reader.read(filename);
3.获得根元素getRootElement()
4.遍历元素集合root.elementIterator()
10.DOM4J生成xml步骤
1. 使用DocumentHelper.createDocument() 构建一个 dom4j的document对象
2.从根节点开始构建节点和树形结构
3.设置格式OutputFormat
4.实例化一个XMLWriter输出对象,打开输出流
5. 将document对象输出到xml文件out.write(doc);
6.关闭输出流out.close();
11.DOM4J修改xml步骤
1.构建解析器SAXReader
2.将XML文件转换成document对象reader.read(filename);
3.获得根元素getRootElement()
4.遍历元素集合root.elementIterator()
5.修改文本内容或属性值
6.设置格式OutputFormat
7.实例化一个XMLWriter输出对象,打开输出流
8. 将document对象输出到xml文件out.write(doc);
9.关闭输出流out.close();
小结:
DOM4J解析技术作为JDOM解析技术的延伸和扩展,在对于XML解析以及生成XML时,步骤都是类似的。
DOM4J性能比DOM、JDOM好,连Sun的JAXM也在用DOM4J。目前许多开源项目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J来读取XML配置文件。