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