• 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解析的基本使用方法。

  • 相关阅读:
    Flask 中的路由系统
    Flask 中内置的 Session
    Flask中的模板语言jinja2
    Flask 中的 5种返回值
    Redis快速入门
    动态实现前后台分页、翻页按钮、上一页、下一页、首页、末页
    bus.js非父子组件之间通讯
    vue中父子组件之间相互传值
    js实现加减乘除
    禁用微信分享
  • 原文地址:https://www.cnblogs.com/mylydg/p/6378988.html
Copyright © 2020-2023  润新知