zoukankan      html  css  js  c++  java
  • Java解析XML之Dom4j

      Java解析XML文件的方法有多种,个人感觉最常用的是使用Dom4j来解析XML文件。下面就简单介绍下Dom4j的基础使用。

      Dom4j需要jar包的支持,大家可以从网络上下载,如dom4j-1.6.1.jar

      下载好JAR包以后,只要导入我们的工程就可以使用了,Java WEB工程导入路径为:WebRoot/WEB-INF/lib目录下;

      代码示例:

    一、查看xml文档基础操作(以封装方法展示):

        public static  void run() throws Exception {
            //获取Dom4j解析器对象
            SAXReader reader = new SAXReader();
            //读取XML,返回Document对象
            Document document = reader.read("src/Demo.xml");
            //获取根节点
            Element rootElement = document.getRootElement();
            //获取根节点下的全部名称为book的元素,得到元素集合
            List<Element> elements = rootElement.elements("book");
            //选择某一个元素
            Element shu2 = elements.get(1); 
            //获取元素下的摸个目标元素
            Element name2 = shu2.element("name");
            //获取元素的文本内容 getText()
            System.out.print("书名是:"+name2.getText());
        }

    二、插入一个xml元素并回写到xml文件的操作

        public static  void run2() throws Exception {
            //获取Dom4j解析器对象
            SAXReader reader = new SAXReader();
            //读取XML,返回Document对象
            Document document = reader.read("src/Demo.xml");
            //获取根节点
            Element rootElement = document.getRootElement();
            //获取目标节点元素
            Element shu1 = (Element) rootElement.elements("book").get(1);
            //添加元素(addElement)和文本(addText);添加属性(addAttribute)
            shu1.addElement("prise").addText("99.8 yuan").addAttribute("属性名", "属性值");
            //设置输出格式,使用OutputFormat,多采用createPrettyPrint();如果需要压缩格式,用createCompactFormat()
            OutputFormat format = OutputFormat.createPrettyPrint();
            //设置输出编码
            format.setEncoding("utf-8");
            //创建回写类,并指定xml路径与写入格式
             XMLWriter writer = new XMLWriter(new FileOutputStream("src/Demo.xml"),format);
             //回写
             writer.write(document);
             //成功
             System.out.print("ok,mylydg");
        }

     三、在指定位置插入元素的操作

        public static  void run3() throws Exception {
                //获取Dom4j解析器对象
                SAXReader reader = new SAXReader();
                //读取XML,返回Document对象
                Document document = reader.read("src/Demo.xml");
                //获取根节点
                Element rootElement = document.getRootElement();
                //获取目标节点元素
                Element book = (Element) rootElement.elements("shu").get(1);
                //通过DocumentHelper创建一个元素
                Element prise = DocumentHelper.createElement("prise");
                //设置元素文本
                prise.setText("99.8 yuan");
                //获得目标元素的子元素集合
                List<Element> elements = book.elements();
                //通过下标添加元素到指定集合位置
                elements.add(0, prise);
                //设置输出格式,使用OutputFormat,多采用createPrettyPrint();如果需要压缩格式,用createCompactFormat()
                OutputFormat format = OutputFormat.createPrettyPrint();
                //创建回写类,并指定xml路径与写入格式
                 XMLWriter writer = new XMLWriter(new FileOutputStream("src/Demo.xml"),format);
                 //回写
                 writer.write(document);
                 //关闭流
                 writer.close();
                 //成功
                 System.out.print("ok,mylydg");
        }

    四、删除和更新的操作

        public static  void run4() throws Exception {
            //获取Dom4j解析器对象
            SAXReader reader = new SAXReader();
            //读取XML,返回Document对象
            Document document = reader.read("src/Demo.xml");
            //获取根节点
            Element rootElement = document.getRootElement();
            //获取目标节点元素
            Element book = (Element) rootElement.elements("shu").get(1);
            //获取要删除的元素
            Element prise = book.element("prise");
            //删除
            book.remove(prise);
            //获取要更新的元素
            Element name = book.element("name");
            //更新
            name.setText("new name");
            //设置输出格式,使用OutputFormat,多采用createPrettyPrint();如果需要压缩格式,用createCompactFormat()
            OutputFormat format = OutputFormat.createPrettyPrint();
            //创建回写类,并指定xml路径与写入格式
             XMLWriter writer = new XMLWriter(new FileOutputStream("src/Demo.xml"),format);
             //回写
             writer.write(document);
             //关闭流
             writer.close();
             //成功
             System.out.print("ok,mylydg");
        }

      以上就是Dom4j对xml解析的基本使用方法。

  • 相关阅读:
    Shiro入门
    Springmvc 文件上传和json处理
    SpringMVC入门
    Mybatis关联关系
    Mybatis整合Ehcache或Redis实现二级缓存
    mybatis与spring集成
    mybatis动态sql以及分页
    MyBatis入门
    使用java代码操作Redis
    【转】 制作Android Demo GIF:程序演示效果GIF图录制
  • 原文地址:https://www.cnblogs.com/mylydg/p/6378988.html
Copyright © 2011-2022 走看看