JAVA XML DOM4J运用代码

来源:互联网 发布:子账号在淘宝哪里登陆 编辑:程序博客网 时间:2024/06/05 20:33

在使用之前请先下载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();    }}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为system无响应怎么办 华为电信信号差怎么办 华为m7耗电快怎么办 苹果X耗电快怎么办 华为p10费电怎么办 华为mate10卡顿怎么办 荣耀v9拍照模糊怎么办 华为电脑开不了怎么办 华为5x内存不足怎么办 2g电脑内存不足怎么办 电脑内存不够用怎么办 海信电视存储空间不足怎么办 支付宝学校没有怎么办 支付宝没有学历怎么办 华为p9gps信号弱怎么办 小米手机wifi慢怎么办 小米wifi网速慢怎么办 华为mate9网络差怎么办 大王卡信号差怎么办 华为P9Plus忘记密码怎么办 华为手机音质差怎么办 三星c5手机发烫怎么办 华为手机老卡怎么办 小米手机慢卡怎么办 华为指纹识别不灵敏了怎么办 金立手机信号不好怎么办 手机边框坏了怎么办 手机保护膜划了怎么办 车膜贴的有气泡怎么办 手机膜进气泡怎么办 贴的手机膜翘角怎么办 全屏膜出现气泡怎么办 手机膜的气泡怎么办 透明手机壳气泡怎么办 钢化膜边缘有气泡怎么办 贴钢化膜边缘有气泡怎么办 钢化膜边上有泡泡怎么办 贴钢化膜周边有气泡怎么办 钢化膜里面有气泡怎么办 手机保护膜破了怎么办 手机触摸屏没反应怎么办