java使用dom4j解析xml学习记录

本文学习使用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();
			//获取document
			Document 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) {
		//获取document
		Document 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转换为String
		String xml = document.asXML();
		//输出转换后的document
		System.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值