java 读写xml_java中读写XML文件初识(解析)

java有四种解析XML文件的方法

DOM SAX DOM4J JDOM

DOM SAX 是java官方提供的,而后两种使需要下载jar包的。

例:

采用DOM方式解析

1)创建一个DocumentBuilderFactory的对象

2)创建一个DocumentBuilder的对象

3)使用DocumentBuilder的parse(String fileName)方法解析xml文件, 该方法返回的是一个document对象,

4)使用Document的getElementByTagName("节点名")方法获得一个NodeList对象。

5)使用NodeList的item方法可以获取一个Node对象

6)使用Node的getAttributes()可以获得一个NameNodeMap对象

7)通过NameNodeMap的item方法可以获得Node对象

8)Node对象有getNodeName()方法和getNodeValue()方法

采用SAX解析

1)通过SAXParserFactory的静态newInstance()方法获取SAXParserFactory实例factory

2)通过SAXParserFactory实例的newSAXParser()方法返回SAXParser实例parser

3)创建一个类继承DefaultHandler,重写其中的一些方法进行业务处理并创建这个类的实例handler

4种解析方式对比

基础方法:DOM平台无关的解析方式

DOM是一次性将XML全放入内存

优点:形成了树结构,直观好理解,代码更易编写

解析过程中树结构保存在内存中,方便修改

缺点:当xml文件较大时,对内存耗费比较大,容易

影响解析性能并造成内存溢出。

SAX java提供的基于事件驱动的解析方式

逐行解析XML文件

标签开始,调用startElement方法

标签结束,调用endElement方法

根节点结束时,调用endDocument方法

优点

采用事件驱动模式,对内存耗费比较小

适用于只需要处理xml中数据时

缺点:

不易编码

很难同时访问同一个xml中的多处不同数据

JDOM

仅使用具体类而不使用接口

API大量使用了Collections类

DOM4J

JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能

DOM4J使用接口和抽象基本类方法,是一个优秀的java XML API

具有性能优异,灵活性好,功能强大和极端易用使用的特点

是一个开放源代码的软件。

当XML文件比较大的,DOM4J解析优于其他方式

你可能感兴趣的:(java,读写xml)