java使用dom4j解析xml学习记录

来源:互联网 发布:在淘宝上开店步骤 编辑:程序博客网 时间:2024/04/26 03:12
本文学习使用dom4j解析xml文件

        在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。如今可以看到越来越多的Java软件都在使用dom4j来读写XML,特 别值得一提的是连Sun的JAXM也在用dom4j。这已经是必须使用的jar包, Hibernate也用它来读写配置文件(摘自dom4j百度百科)

附加dom4j官网下载地址,官网进不了的可以自行搜索dom4j-1.6.1进行下载。

http://sourceforge.net/projects/dom4j/files/latest/download?source=files


        可以看到dom4j存在多个版本,最新的为2015-07-08号所更新的,但是其中dom4j-1.6.1使用人数最多(周下载量1049),故本文示例使用的为dom4j-1.6.1版本,下载完解压后可进入dom4j-1.6.1->docs->index.html,查看自带的使用教程。

1、将dom4j-1.6.1.jar包添加到项目构建路径,注意某些类导包时选择导入org.dom4j下的包。

2、新建students.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?><学生列表><学生 学号="20131231002"><姓名>张琴</姓名><性别>女</性别><专业>英语</专业><班级>201303</班级><学分>700</学分></学生><学生 学号="20131232006"><姓名>王海</姓名><性别>男</性别><专业>计算机</专业><班级>201302</班级><学分>800</学分></学生><学生 学号="20131239006"><姓名>李飞</姓名><性别>男</性别><专业>金融</专业><班级>201303</班级><学分>750</学分></学生></学生列表>

3、读取xml文件代码如下:

package com.example;import java.io.File;import java.util.Iterator;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class Dom4jReadXml {public static void main(String[] args) {try {SAXReader saxReader = new SAXReader();//获取documentDocument document =saxReader.read(new File("students.xml"));//得到根元素,即学生列表元素Element root = document.getRootElement();//获取学生列表元素组List<Element> studentList = root.elements("学生");//遍历学生列表元素组for(Iterator<Element> i = studentList.iterator(); i.hasNext(); ){//获取学生元素Element student = i.next();//输出学生学号System.out.println(student.getName()+":"+student.attributeValue("学号"));//获取学生元素子元素列表List<Element> studentChildList = student.elements();//遍历学生元素子元素列表for(Iterator<Element> j = studentChildList.iterator(); j.hasNext(); ){//获取学生子元素Element studentChild = j.next();//输出学生子元素System.out.println(studentChild.getName()+":"+studentChild.getText());}System.out.println("----------------");}} catch (DocumentException e) {e.printStackTrace();}}}

输出结果:


4、写入xml文件代码如下:

package com.example;import java.io.FileWriter;import java.io.IOException;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.XMLWriter;public class Dom4jWriteXml {public static void main(String[] args) {//获取documentDocument document = DocumentHelper.createDocument();//添加学生列表根元素Element root = document.addElement("学生列表");//添加学生元素Element student = root.addElement("学生");//添加学号属性student.addAttribute("学号", "20131231002");//依次添加姓名、性别、专业、班级、学分属性Element name = student.addElement("姓名");name.setText("张琴");Element sex = student.addElement("性别");sex.setText("女");Element prof = student.addElement("专业");prof.setText("英语");Element clas = student.addElement("班级");clas.setText("201303");Element grade = student.addElement("学分");grade.setText("700");//document转换为StringString xml = document.asXML();//输出转换后的documentSystem.out.println(xml);try {//新建XMLWriter对象XMLWriter write = new XMLWriter(new FileWriter("example.xml"));//将document存储到缓存write.write(document);//刷新缓存,即存储到xml文件中write.flush();//输出提示信息System.out.println("保存文件成功!");} catch (IOException e) {e.printStackTrace();}}}

5、通过读取和写入xml文件的学习,修改和删除也应该容易理解了,只需通过某个节点或元素调用一系列remove方法即可。    
0 0
原创粉丝点击