【Java】Java核心 76:XML解析 Dom4j (下)

简介: 3 使用xpath技术结合DOM4J技术读取xml文件(了解)1.概念介绍问题:通过上面的案例我们发现有个小问题.就是获取标签的过程太过繁琐。我们需要一层一层的去获取。假设xml嵌套了50层的话,对于我们开发者来说是非常繁琐的。所以我们希望应该有这样的技术,一下子直接就能获取我们所需要的标签对象。这就是我们接下来需要学习的xpath技术。

3使用xpath技术结合DOM4J技术读取xml文件(了解)

1.概念介绍

问题:通过上面的案例我们发现有个小问题.就是获取标签的过程太过繁琐。我们需要一层一层的去获取。假设xml嵌套了50层的话,对于我们开发者来说是非常繁琐的。所以我们希望应该有这样的技术,一下子直接就能获取我们所需要的标签对象。这就是我们接下来需要学习的xpath技术。


xpath技术 也是 W3C 组织制定的快速获取 xml文件中某个标签的技术。


xpath其实就像在文件系统中定位文件,所以我们学习xpath主要学习xpath的路径表达式。

2.XPath使用步骤

步骤1:导入jar包(dom4j-1.6.1.jar(dom4j核心包)和jaxen-1.1-beta-6.jar(xpath依赖的包))

1cc98b8f1eab4c5b8a97a8cbb4c9db03.png

1b271413d8be45dfbf6cda92ebfc482e.png

步骤3:使用document常用的api结合xpath的语法完成选取XML文档元素节点进行解析操作。


说明:


Node叫做节点,DOM里面所有的类型都是Node的子类

比如Document Element Attribute 都是 Node的子类

Node中的两个方法可以使用XPath:

方法 作用
List selectNodes(“表达式”) 获取符合表达式的元素集合
Element selectSingleNode(“表达式”) 获取符合表达式的唯一元素

3.XPath语法(了解)

在学习如何使用XPath之前,我们先将课后资料中的tianqi.xml放到项目根目录下,然后我们在演示如何使用xpath。

3.1全文搜索路径表达式方式 掌握
  • 代表无论中间有多少层,直接获取所有子元素中满足条件的元素
  • 一个“/”符号,代表逐级写路径
  • 2个“//”符号,不用逐级写路径,可以直接选取到对应的节点,是全文搜索匹配的不需要按照逐层级 重点
  • 需求1:获取天气预报里的所有湿度,不论有多少层
  • 需求2:获取广州里面的3个最高温度
//代表无论中间有多少层,直接获取所有子元素中满足条件的元素
    @Test
    public void demo03() throws Exception {
        //全文搜索    //
        SAXReader reader = new SAXReader();
        Document document = reader.read("tianqi.xml");
        //获取天气预报里的所有湿度,不论有多少层
        List<Node> list = document.selectNodes("//湿度");
        //遍历打印
        for (Node node : list) {
            System.out.println(node.getText());
        }
        System.out.println("--------------");
        //获取广州里面的3个最高温度
        List<Node> list1 = document.selectNodes("/天气预报/广州//最高温度");
        for (Node node : list1) {
            System.out.println(node.getText());
        }
    }

相关文章
|
5天前
|
Java
Java中ReentrantLock释放锁代码解析
Java中ReentrantLock释放锁代码解析
23 8
|
3天前
|
Java
Java 15 神秘登场:隐藏类解析未知领域
Java 15 神秘登场:隐藏类解析未知领域
10 0
|
3天前
|
安全 Java 编译器
接口之美,内部之妙:深入解析Java的接口与内部类
接口之美,内部之妙:深入解析Java的接口与内部类
20 0
接口之美,内部之妙:深入解析Java的接口与内部类
|
7天前
|
XML JSON JavaScript
Java中XML和JSON的比较与应用指南
本文对比了Java中XML和JSON的使用,XML以自我描述性和可扩展性著称,适合结构复杂、需验证的场景,但语法冗长。JSON结构简洁,适用于轻量级数据交换,但不支持命名空间。在Java中,处理XML可使用DOM、SAX解析器或XPath,而JSON可借助GSON、Jackson库。根据需求选择合适格式,注意安全、性能和可读性。
21 0
|
13天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
22天前
|
Java 程序员 C#
静态构造方法解析,Java新手必看技能
静态构造方法解析,Java新手必看技能
8 0
|
26天前
|
XML Java 数据格式
使用java解析XML文件的步骤
使用java解析XML文件的步骤
10 0
|
28天前
|
Java 开发者
深入解析Java中的Lambda表达式
本文深入探讨Java编程语言中的Lambda表达式,介绍了Lambda表达式的定义、优势以及在实际开发中的应用场景,旨在帮助读者更好地理解和运用这一特性。
|
XML Java 数据格式
java之DocumentBuilderFactory解析xml(2)
java之DocumentBuilderFactory解析xml(2)
229 0

推荐镜像

更多