zoukankan      html  css  js  c++  java
  • 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);
    	}
    
    }
    

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

  • 相关阅读:
    python虚拟环境--virtualenv
    python使用smtplib发送邮件
    python网络编程
    python操作MySQL数据库
    python面向对象
    python内置函数总结
    python异常处理
    python文件I/O
    python模块
    python函数
  • 原文地址:https://www.cnblogs.com/devin818/p/6413514.html
Copyright © 2011-2022 走看看