今天 一位同学问到关于dom4j怎么使用,我也没用过,自己做了个例子

是用dom4j多xml增删改 ,
今天才发现dom4j真是太强大了 ,以前关于xml解析都是用的jdom
上手很快。

package org.ywq.test;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.QName;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.ywq.entity.Student;

/**
* @author ai5qiangshao E-mail:ai5qiangshao@163.com
* @version 创建时间:Aug 20, 2009 5:42:22 PM
* @Package org.ywq.test
* @Description 类说明
*/
public class TestXml {

public static void main(String args[]) throws Exception {
XMLWriter writer = null;// 声明写XML的对象
SAXReader reader = new SAXReader();
//readerXml(reader, writer);
//createXml();

List<Student> list=loadXml();
Iterator<Student> it=list.iterator();
while (it.hasNext()) {
Student type = it.next();
System.out.println(type.getName());

}

}

public static List<Student> addStudnet(){

List<Student> stus=new ArrayList<Student>();
stus.add(new Student("admin",33,"女"));
stus.add(new Student("ai5qiangshao",33,"男"));
stus.add(new Student("yuanwen",3,"女"));
stus.add(new Student("zhongjiqiangshao",33,"男"));
return stus;

}

private static void modifyXml(SAXReader reader, XMLWriter writer)
throws Exception {
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");// 设置XML文件的编码格式
Document doc = reader.read(new File("d:\\student.xml"));
Element root = doc.getRootElement();
List<Student> stus=addStudnet();
for (Student student : stus) {
Element men=root.addElement("menber");
men.addElement("name").setText(student.getName());
men.addElement("age").setText(student.getAge().toString());
men.addElement("sex").setText(student.getSex());
}

writer = new XMLWriter(new FileWriter("d:\\student.xml"), format);
writer.write(doc);
writer.close();

}

public static List<Student> loadXml()throws Exception{
List<Student> list=new ArrayList<Student>();
SAXReader reader=new SAXReader();
Document doc=reader.read(new File("d:\\student.xml"));
Element root=doc.getRootElement();
Iterator<Element> subElement=root.elementIterator();
while (subElement.hasNext()) {
Element element = (Element) subElement.next();
list.add(new Student(element.element("name").getText(),Integer.parseInt(element.element("age").getText()),element.element("sex").getText()));
}
return list;
}

private static void createXml() throws IOException {
XMLWriter writer;
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");// 设置XML文件的编码格式
File file = new File("d:\\student.xml");

file.createNewFile();
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("members");// 创建根节点
Element menber = root.addElement("menber");
menber.addElement("name").addText("qiangshao");
menber.addElement("age").addText("18");
menber.addElement("sex").addText("男");
writer = new XMLWriter(new FileWriter(file), format);
writer.write(doc);
writer.close();
}

}





xml文件如下 :
是动态创建的:


<?xml version="1.0" encoding="GBK"?>

<members>
<menber>
<name>qiangshao</name>
<age>66</age>
<sex>男</sex>
</menber>
<menber>
<name>admin</name>
<age>33</age>
<sex>女</sex>
</menber>
<menber>
<name>ai5qiangshao</name>
<age>33</age>
<sex>男</sex>
</menber>
<menber>
<name>yuanwen</name>
<age>3</age>
<sex>女</sex>
</menber>
<menber>
<name>zhongjiqiangshao</name>
<age>33</age>
<sex>男</sex>
</menber>
</members>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值