JAVA XML DOM4J运用代码

在使用之前请先下载DOM4J的jar包,并导入到java工程中。
DOM4J下载地址:http://pan.baidu.com/s/1miQ3CFm

修改节点

        // 创建文件对象.
        File file = new File("write.xml");
        // 创建字节输入流
        FileInputStream fis = new FileInputStream(file);
        // 创建xml核心解析器。
        SAXReader saxReader = new SAXReader();
        // 使用核心解析器读取xml文件,
        Document xmlDocument = saxReader.read(fis);
        // 获取根节点名。
        Element rootElement = xmlDocument.getRootElement();
        String rootName = rootElement.getName();
        System.out.println("该文件的根结点名:" + rootName);

        System.out.println("----------------------------------");
        {
            // 创建节点
            Element animalElement = DocumentHelper.createElement("animal");
            // 给节点添加内容
            animalElement.setText("cat");
            // 在该节点下添加节点
            rootElement.add(animalElement);
        }

        System.out.println("----------------------------------");
        {
            // 在指定为创建节点
            // 创建节点
            Element animalElement = DocumentHelper.createElement("animal");
            // 给节点添加内容
            animalElement.setText("dog");
            List<Element> listElement = rootElement.elements();
            // 在0号位置创建节点
            listElement.add(0, animalElement); // 因为listElement不是new出来的,所以操作listElent相当于操作rootElement即xmlDocument。
        }
        System.out.println("----------------------------------");
        // 创建字节输出流
        FileOutputStream fos = new FileOutputStream(file);
        // 创建输出模式
        // OutputFormat format = OutputFormat.createCompactFormat();//紧缩模式
        OutputFormat format = OutputFormat.createPrettyPrint();// 优雅的分行模式。
        // 用指定输出模式创建xml输出对象
        XMLWriter xmlWriter = new XMLWriter(fos, format);
        // 向硬盘写出xml文件
        xmlWriter.write(xmlDocument);
        xmlWriter.close();
        System.out.println("xml修改完毕,并重写到该文件");

修改xml文件中的元素的内容和元素.

    // 文件所在位置
        String path = "write.xml";
        // 创建文件对象
        File file = new File(path);
        // 创建字节输入流
        FileInputStream fis = new FileInputStream(file);
        // 创建xml核心解析器。
        SAXReader saxReader = new SAXReader();
        // 使用核心解析器读取xml文件,
        Document xmlDocument = saxReader.read(fis);
        // 获取根节点名。
        Element rootElement = xmlDocument.getRootElement();
        String rootName = rootElement.getName();
        System.out.println("该文件的根结点名:" + rootName);

        // 修改指定节点。
        Element pointElement = rootElement.element("book");
        System.out.println(pointElement.getText());
        // 修改属性
        pointElement.addAttribute("id", "it2016"); // 没有的属性,会自动添加,有就修改。
        // 修改内容
        pointElement.setText("伊索寓言");

        System.out.println("----------------------------------");
        // 创建字节输出流
        FileOutputStream fos = new FileOutputStream(file);
        // 创建输出模式
        // OutputFormat format = OutputFormat.createCompactFormat();//紧缩模式
        OutputFormat format = OutputFormat.createPrettyPrint();// 优雅的分行模式。
        // 用指定输出模式创建xml输出对象
        XMLWriter xmlWriter = new XMLWriter(fos, format);
        // 向硬盘写出xml文件
        xmlWriter.write(xmlDocument);
        xmlWriter.close();
        System.out.println("xml修改完毕,并重写到该文件");

xml核心解析器的运用,对xml文件的节点读取操作。

    // 创建字节输入流,
        FileInputStream fis = new FileInputStream(new File("my.xml"));
        // 创建xml核心解析器。
        SAXReader saxReader = new SAXReader();
        // 使用核心解析器读取xml文件,
        Document xmlDocument = saxReader.read(fis);
        // 获取根节点名。
        Element rootElement = xmlDocument.getRootElement();
        String rootName = rootElement.getName();
        System.out.println("该文件的根结点名:" + rootName);

        // 获取根节点下指定节点的内容。
        {// 用花括号阔取这个区域,好释放掉变量,下面的代码才可以使用pointElement的变量。
            Element pointElement = rootElement.element("book");
            String pointText = pointElement.getText();
            System.out.println("指定的节点的内容:" + pointText);

        }

        System.out.println("------------------------------------");

        // 获取根节点下的指定节点的所有相同节点的内容。
        {// 用花括号阔取这个区域,好释放掉变量,下面的代码才可以使用pointElements的变量。
            List<Element> pointElements = rootElement.elements("book");
            for (Element pointElement : pointElements) {
                String pointText = pointElement.getText();
                System.out.println("指定的节点的所有内容:" + pointText);
            }
        }

        System.out.println("------------------------------------");

        // 获取根节点下的所有节点内容
        {
            List<Element> pointElements = rootElement.elements();
            for (Element pointElement : pointElements) {
                String pointText = pointElement.getText();
                System.out.println("所有同一级节点的内容:" + pointText);
            }
        }

        System.out.println("------------------------------------");
        //跨层访问element
        Element element = rootElement.element("computer").element("name");
        System.out.println("跨层访问element的内容:" + element.getText());

把xml语句写到硬盘中的xml文件中.

// xml语句
        String str = "<bookStore><book>海底两万里</book></bookStore>";
        // 从硬盘中读取xml文件
        XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(new File("new.xml")));
        // 把xml文件写到硬盘中。
        xmlWriter.write(DocumentHelper.parseText(str));
        xmlWriter.close();
        System.out.println("XML文件输出完毕");

// 向硬盘创建一个 xml文件.

        // 在内存中创建一个xml文件
        Document xmlDocument = DocumentHelper.createDocument();
        XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(new File(trgPath)));
        xmlWriter.write(xmlDocument);
        xmlWriter.close();

以下为完整代码

package cn.itcatst_01;

import java.io.File;
import java.io.FileInputStream;
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 dom4j {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub

    }

    // 修改节点.
    public static void Element() throws Exception {
        // 创建文件对象.
        File file = new File("write.xml");
        // 创建字节输入流
        FileInputStream fis = new FileInputStream(file);
        // 创建xml核心解析器。
        SAXReader saxReader = new SAXReader();
        // 使用核心解析器读取xml文件,
        Document xmlDocument = saxReader.read(fis);
        // 获取根节点名。
        Element rootElement = xmlDocument.getRootElement();
        String rootName = rootElement.getName();
        System.out.println("该文件的根结点名:" + rootName);

        System.out.println("----------------------------------");
        {
            // 创建节点
            Element animalElement = DocumentHelper.createElement("animal");
            // 给节点添加内容
            animalElement.setText("cat");
            // 在该节点下添加节点
            rootElement.add(animalElement);
        }

        System.out.println("----------------------------------");
        {
            // 在指定为创建节点
            // 创建节点
            Element animalElement = DocumentHelper.createElement("animal");
            // 给节点添加内容
            animalElement.setText("dog");
            List<Element> listElement = rootElement.elements();
            // 在0号位置创建节点
            listElement.add(0, animalElement); // 因为listElement不是new出来的,所以操作listElent相当于操作rootElement即xmlDocument。
        }
        System.out.println("----------------------------------");
        // 创建字节输出流
        FileOutputStream fos = new FileOutputStream(file);
        // 创建输出模式
        // OutputFormat format = OutputFormat.createCompactFormat();//紧缩模式
        OutputFormat format = OutputFormat.createPrettyPrint();// 优雅的分行模式。
        // 用指定输出模式创建xml输出对象
        XMLWriter xmlWriter = new XMLWriter(fos, format);
        // 向硬盘写出xml文件
        xmlWriter.write(xmlDocument);
        xmlWriter.close();
        System.out.println("xml修改完毕,并重写到该文件");
    }

    // 修改xml文件中的元素的内容和元素.
    public static void writeElement() throws Exception {
        // 文件所在位置
        String path = "write.xml";
        // 创建文件对象
        File file = new File(path);
        // 创建字节输入流
        FileInputStream fis = new FileInputStream(file);
        // 创建xml核心解析器。
        SAXReader saxReader = new SAXReader();
        // 使用核心解析器读取xml文件,
        Document xmlDocument = saxReader.read(fis);
        // 获取根节点名。
        Element rootElement = xmlDocument.getRootElement();
        String rootName = rootElement.getName();
        System.out.println("该文件的根结点名:" + rootName);

        // 修改指定节点。
        Element pointElement = rootElement.element("book");
        System.out.println(pointElement.getText());
        // 修改属性
        pointElement.addAttribute("id", "it2016"); // 没有的属性,会自动添加,有就修改。
        // 修改内容
        pointElement.setText("伊索寓言");

        System.out.println("----------------------------------");
        // 创建字节输出流
        FileOutputStream fos = new FileOutputStream(file);
        // 创建输出模式
        // OutputFormat format = OutputFormat.createCompactFormat();//紧缩模式
        OutputFormat format = OutputFormat.createPrettyPrint();// 优雅的分行模式。
        // 用指定输出模式创建xml输出对象
        XMLWriter xmlWriter = new XMLWriter(fos, format);
        // 向硬盘写出xml文件
        xmlWriter.write(xmlDocument);
        xmlWriter.close();
        System.out.println("xml修改完毕,并重写到该文件");
    }




    // xml核心解析器的运用,对xml文件的节点读取操作。
    public static void readElement() throws Exception {
        // 创建字节输入流,
        FileInputStream fis = new FileInputStream(new File("my.xml"));
        // 创建xml核心解析器。
        SAXReader saxReader = new SAXReader();
        // 使用核心解析器读取xml文件,
        Document xmlDocument = saxReader.read(fis);
        // 获取根节点名。
        Element rootElement = xmlDocument.getRootElement();
        String rootName = rootElement.getName();
        System.out.println("该文件的根结点名:" + rootName);

        // 获取根节点下指定节点的内容。
        {// 用花括号阔取这个区域,好释放掉变量,下面的代码才可以使用pointElement的变量。
            Element pointElement = rootElement.element("book");
            String pointText = pointElement.getText();
            System.out.println("指定的节点的内容:" + pointText);

        }

        System.out.println("------------------------------------");

        // 获取根节点下的指定节点的所有相同节点的内容。
        {// 用花括号阔取这个区域,好释放掉变量,下面的代码才可以使用pointElements的变量。
            List<Element> pointElements = rootElement.elements("book");
            for (Element pointElement : pointElements) {
                String pointText = pointElement.getText();
                System.out.println("指定的节点的所有内容:" + pointText);
            }
        }

        System.out.println("------------------------------------");

        // 获取根节点下的所有节点内容
        {
            List<Element> pointElements = rootElement.elements();
            for (Element pointElement : pointElements) {
                String pointText = pointElement.getText();
                System.out.println("所有同一级节点的内容:" + pointText);
            }
        }

        System.out.println("------------------------------------");
        //跨层访问element
        Element element = rootElement.element("computer").element("name");
        System.out.println("跨层访问element的内容:" + element.getText());

    }

    // 把xml语句写到硬盘中的xml文件中.
    public static void parseText() throws Exception {
        // xml语句
        String str = "<bookStore><book>海底两万里</book></bookStore>";
        // 从硬盘中读取xml文件
        XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(new File("new.xml")));
        // 把xml文件写到硬盘中。
        xmlWriter.write(DocumentHelper.parseText(str));
        xmlWriter.close();
        System.out.println("XML文件输出完毕");
    }

    // 向硬盘创建一个 xml文件.
    public static void createXML(String trgPath) throws Exception {
        // 在内存中创建一个xml文件
        Document xmlDocument = DocumentHelper.createDocument();
        XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(new File(trgPath)));
        xmlWriter.write(xmlDocument);
        xmlWriter.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值