Dom4J xml处理(我的第一个封装类)

Posted 清风徐来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dom4J xml处理(我的第一个封装类)相关的知识,希望对你有一定的参考价值。

Dom4J 是处理xml的一个高效强大的工具包

下面是我自己写的工具类 希望能对大家有帮助,下面是主要方法(注本类使用dom4j-1.6.1.jar包下载地址http://pan.baidu.com/s/1o7Vasmm

主要方法1:getDocument(String path);获取documen对象
           2:xmlWrites(String path,Document document);回写xml文件

           3:getElement(String qname,String textString);创建元素对象

           4:addRootChild(String path,int index,String qname,String textString);在根节点的第index位置添加节点

           5:getElements(Element element) ;递归element元素的节点

           6:getElements(String path);遍历xml文件

    废话不多说,直接上代码

package utils.dom4jutils;

import java.io.FileOutputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
        /*
         * @author:钟冬冬
         * @time:2017-02-18 13:48
         * @function:处理xml封装类
         */
public class Dom4jUtils {
	
	//1:获取document
	
	public static Document getDocument(String path){
		
	   	try {
			//构建解析器
			  SAXReader saxReader=new  SAXReader();
			  //获取document对象
			  Document document=saxReader.read(path);
			  return document;
			  
		} catch (Exception e) {
			     e.printStackTrace();
		}
		   return null;
	}
	
	
	//2回写xml
	
	public static void xmlWrites(String path,Document document){
	
		try {
			   //获取设置xml格式实例
			   OutputFormat format=OutputFormat.createPrettyPrint();
		  	   //读取xml
			    XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(path),format);
			    //回写到xml文件
			    xmlWriter.write(document);
			    //关闭文件流
			    xmlWriter.close();
			} 
		catch (Exception e) {
			   e.printStackTrace();
		}
}
	
	//3创建元素标签,返回元素对象
	
	public static Element getElement(String qname,String textString){
		
		try {
		    //创建element标签
			Element element=DocumentHelper.createElement(qname);
			//向element标签中加入内容
			element.setText(textString);
	         return element;
		} catch (Exception e) {
			e.printStackTrace();
		}
		 return null;
	}

	//4增加根节点下的第i个节点增加内容为i的节点
	
	public static void addRootChild(String path,int index,String qname,String textString){
		//获取document
		Document document=Dom4jUtils.getDocument(path);
		//获取根节点
		Element root=document.getRootElement();
		//获取root下的所有元素
		List<Element> list=root.elements();
		//创建元素标签
		Element element=Dom4jUtils.getElement(qname, textString);
		//把element加入根节点下
		list.add(index,element);
		//回写xml
		xmlWrites(path, document);
		}
	
	//5遍历xml文件之递归
	
	

	public static void getElements(Element element) {
		
		List<Element> list=element.elements();
		//遍历xml
		for(int i=0; i<list.size();i++){
			System.out.println(list.get(i));
		   List<Element>  l=	list.get(i).elements();
		   System.out.println(l.size());
		  getElements(list.get(i));	
				
		}		
	}
	
	//6遍历xml文件
	public static void getElements(String path) {	
		
      //获取document
		Document document=Dom4jUtils.getDocument(path);
		//获取根节点
		Element root=document.getRootElement();
		
		getElements(root);
	}

}

  本人新手,欢迎指导批评!!!!!求点赞,求推荐。

以上是关于Dom4J xml处理(我的第一个封装类)的主要内容,如果未能解决你的问题,请参考以下文章

基于DOM4J的XML文件解析类

DOM4J操作XML(包括封装和解析)

dom4j解析简单的xml文件 解析元素并封装到对象

Dom4j工具j解析XML原理和示例代码

从片段类中的对话框添加项目到recyclerview。

使用dom4j处理xml操作xml数据