`
qiangshao
  • 浏览: 11270 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类

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

    博客分类:
  • XML
阅读更多
是用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>



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics