• 【Java dom4j 实现解析xml文件】


    熟悉dom4j

    提示:本次学习的目标和方向
    DOM4J是 dom4j.org 出品的一个开源 XML 解析包。DOM4J应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP。

    DOM4J 使用起来非常简单。只要你了解基本的 XML-DOM 模型,就能使用。

    Dom:把整个文档作为一个对象。

    API操作类:

    Document: 表示xml文档信息,是一个树形结构

    Eelment: 表示xml的元素结点,提供一些操作其子元素方法的,如文本、属性、名称空间等

    Attribute: 表示元素结点中的属性


    内容

    提示:本次学习的内容
    如:导入Jar包

    读取xml文档

    读写XML文档主要依赖于org.dom4j.io包,有DOMReader和SAXReader两种方式。因为利用了相同的接口,它们的调用方式是一样的。

    public static Document load(String filename) {  
        Document document = null;  
        try {  
            SAXReader saxReader = new SAXReader();  
            document = saxReader.read(new File(filename)); // 读取XML文件,获得document对象  
        } catch (Exception ex) {  
            ex.printStackTrace();  
        }  
        return document;  
    }  
      
    public static Document load(URL url) {  
        Document document = null;  
        try {  
            SAXReader saxReader = new SAXReader();  
            document = saxReader.read(url); // 读取XML文件,获得document对象  
        } catch (Exception ex) {  
            ex.printStackTrace();  
        }  
        return document;  
    }  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    读取操作①

    users.xml:

    
    <users>
        <user id="u001">
            <name>jackname>
            <age>22age>
        user>
        <user id="u002">
            <name>张三name>
            <age>20age>
        user>
        <user id="u003">
            <name>Rosename>
            <age>20age>
        user>
        <student id="s007">
            <name>王同学name>
            <age>21age>
        student>
    users>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    Demo01:

    package com.etime21;
    
    
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    
    import java.io.File;
    import java.util.List;
    
    public class Demo01 {
        public static void main(String[] args) {
            String separator = File.separator;
    
            try {
                //get a SAXReader object 获取一个SAXReader对象
                SAXReader reader = new SAXReader();
                //创建一个File类
                File file = new File("D:"+separator+"users.xml");
                //读取xml,返回一个Document对象
                Document read = reader.read(file);
                //得到Element的根节点
                Element root = read.getRootElement();
                String name = root.getName();
                System.out.println(name);
                //遍历子元素
                List<Element> elements = root.elements();
                //增强for循环遍历
                for (Element element : elements) {
                    String id = element.attributeValue("id");
                    System.out.println(id);
                    List<Element> elements1 = element.elements();
                    for (Element element1 : elements1) {
                        System.out.println(element1.getTextTrim());
                    }
                }
            } catch (Exception e){
                e.printStackTrace();
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    读取操作②

    package com.etime21;
    
    
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    
    import java.io.File;
    import java.util.List;
    
    public class Demo02 {
        public static void main(String[] args) {
            String separator = File.separator;
    
            try {
                //get a SAXReader object 获取一个SAXReader对象
                SAXReader reader = new SAXReader();
                //创建一个File类
                File file = new File("D:"+separator+"users.xml");
                //读取xml,返回一个Document对象
                Document read = reader.read(file);
                //得到Element的根节点
                Element root = read.getRootElement();
                //按照元素的标签名来得到元素对应的节点集合
                List<Element> user = root.elements("user");
                for (Element element : user) {
                    //通过属性名称得到对应的属性值
                    System.out.println(element.attributeValue("id"));
                    //通过元素标签名获得对应的元素的文本信息
                    System.out.println(element.elementText("name"));
                    System.out.println(element.elementText("age"));
                }
            } catch (Exception e){
                e.printStackTrace();
            }
        }
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
  • 相关阅读:
    TFM—用于实时监控和数据管理的远程试验管理平台
    swagger---接口文档管理生成管理工具
    关于广域网与局域网介绍及数据交换
    【提交ACM出版 | EI&Scopus检索稳定 | 高录用】第五届大数据与社会科学国际学术会议(ICBDSS 2024,8月16-18)
    java_web的框架分析
    VI常用操作
    Python自学教程9-python中的if语句,你知道多少?
    RedisBigKey闭坑指南
    【Linux从0-1 】之 - 什么是Linux?Linux与Unix有什么区别?Linux的几个主流发行版本
    HTML+CSS简单漫画网页设计成品 蜡笔小新3页 大学生个人HTML网页制作作品
  • 原文地址:https://blog.csdn.net/sakura22123/article/details/126493273