`
星夜的遐想
  • 浏览: 182702 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何用dom4j创建和读取xml文件

阅读更多

开发过程中,操作xml文件是很常见的,虽然Java API中提供了很多操作XML文件的的帮助类,我比较喜欢的是用Dom4j操作,在此分享下。

 

首先我们得下载dom4j.jar包,如需要下载,可到文章下面的附件中下载

 

 

首先介绍下如何创建一个xml文件,贴上我的代码,上面都有详细的注释

 

package test.xml.dom4j;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class Test1 {


	public static void main(String[] args) throws IOException {
		
		
		//创建docment对象
		//Document doc=DocumentHelper.createDocument();
		//创建document根元素
		//Element root=DocumentHelper.createElement("student");
		//将根元素添加到根节点上去
		//doc.setRootElement(root);
		
		
		//第二种方式
		Element root1=DocumentHelper.createElement("persons");
		Document doc1=DocumentHelper.createDocument(root1);
		
		Element student1=null;
		
		for(int i=0;i<10;i++){
			
			student1=root1.addElement("person");
			student1.addAttribute("id","s00"+i);
			//addElement返回原操作的元素
			student1.addElement("name").setText("张三"+i);
			
		}
		
	
		//输出文档到控制台
		XMLWriter xmlwriter=new XMLWriter();
		xmlwriter.write(doc1);
		
		
	
		//输出文档到指定路径(默认的格式)
		OutputStream os=new FileOutputStream("Doc/person.xml");
		XMLWriter xw=new XMLWriter(os);
		xw.write(doc1);
		
		
		//输出文档(自定义格式)
		OutputStream os1=new FileOutputStream("Doc/person.xml");
		
		//换行显示,并且缩进两个空格
		OutputFormat format1=new OutputFormat("  ",true);
		XMLWriter xw1=new XMLWriter(os1,format1);
		xw1.write(doc1);
		xw1.close();
	}



}

 

 

读取xml文件

 

package test.xml.dom4j;
import java.io.FileInputStream;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Test2 { 

	public static void main(String[] args) throws Exception {
		
		//构建saxreader对象
		SAXReader sr=new SAXReader();
		
		//获得项目路径下的student.xml
		String path=System.getProperty("user.dir")+"/Doc/student.xml";
				
		System.out.println("path----"+path);
		
		Document doc=sr.read(new FileInputStream(path));
		
	
		
		//获得xml文件的根节点
		Element root=doc.getRootElement();
		
		//获得根节点的名字
		System.out.println(root.getName());
		
		//获得student元素的集合
		List<Element> list=root.elements("student");
		
		System.out.println(list.size());
		
		//遍历student节点的集合
		Iterator<Element> it=list.iterator();
		
		while(it.hasNext())
		{
			//获得每一个student的节点
			Element e=(Element)it.next();
			
			//获得student的id属性
			System.out.println(e.attributeValue("id"));
			
			//获得每个student元素的name子节点
			e=e.element("name");
			
			//取得name节点的值
			System.out.println(e.getData());
		}
		
		
		
	}

}

 也就这么多,有什么不明白的可以提出来,呵呵。

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics