您的位置:首页 > 其它

dom4j读取xml文件的简单使用

2014-01-09 09:51 399 查看
package com.cplatform.dom4j;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.util.List;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;

/**
 * 创建document,添加节点,属性,注释

 * 读取document

 * 2014/1/8 13:34

 * @author wanglei

 *

 */

public class Dom4jUtil {

    

    /**

     * 创建document

     * @return

     */

    public static Document createDomFJ(){

        //使用DocumentHelper类创建一个文档实例

        return DocumentHelper.createDocument();

    }

    

    /**

     * 创建根节点

     * @param rootName 根节点的名字

     * @param dom 文档

     * @return

     */

    public static Element createRoot(String rootName,Document doc){

        return doc.addElement(rootName);

    }

    

    /**

     * 给父节点添加子节点

     * @param subName 子节点名字

     * @param el 父节点

     * @return

     */

    public static Element appendChild(String subName,Element el){

        return el.addElement(subName);

    }

    

    /**

     * 给节点赋值

     * @param el 节点

     * @param value 值

     */

    public static void setValue(Element el, String value){

        el.setText(value);

    }

    

    /**

     * 给父节点添加子节点并赋值

     * @param subName

     * @param el

     * @param value

     * @return

     */

    public static Element appendChild(String subName,Element el,String value){

        Element sub = el.addElement(subName);

        sub.setText(value);

        return sub ;

    }

    

    /**

     * 添加属性并赋值

     * @param attName

     * @param attValue

     * @param el

     */

    public static void addAttribute(String attName,String attValue,Element el){

        el.addAttribute(attName, attValue);

    }

    

    /**

     * 给节点添加说明

     * @param commemt 说明的内容

     * @param el 需要添加的节点

     */

    public static void addComment(String commemt,Element el){

        el.addComment(commemt);

    }

    

    /**

     * 给文档添加注释

     * @param comment

     * @param doc

     */

    public static void addComment(String comment,Document doc){

        doc.addComment(comment);

    }

    

    /**

     * 将document写入文件

     * @param encode 编码方式

     * @param filePath 文件路径

     * @param doc 文档

     */

    public static void writeFileFromDocument(String encode,String filePath,Document doc){

        OutputFormat format = OutputFormat.createPrettyPrint();//紧缩

        format.setEncoding(encode);

        try {

            XMLWriter writer = new XMLWriter(new OutputStreamWriter(

                    new FileOutputStream(filePath)),format);

            writer.write(doc);

            writer.close();

        }  catch (IOException e) {

            System.out.println("写入文件错误");

            e.printStackTrace();

        }

    }

    

    /**

     * 得到根节点

     * @param filePath

     * @return

     */

    public static Element getRootElement(String filePath){

        SAXReader reader = new SAXReader();

        Document doc = null;

        try {

            doc = reader.read(new FileInputStream(new File(filePath)));

        } catch (DocumentException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }

        return doc.getRootElement();

    }

    

    /**

     * 得到该节点下的所有子节点(不包括子节点的子节点)

     * @param el

     * @return

     */

    @SuppressWarnings("unchecked")

    public static List<Element> getElements(Element el){

        return el.elements();

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: