学习的点点滴滴

Email : 107311278@qq.com
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

JAVA dom4j 学习三 封装XML

Posted on 2019-09-14 01:12  v薛定谔的猫v  阅读(237)  评论(0)    收藏  举报

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;

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);
    }
 
}