使用 dom4j 支持 XPATH 的操作一| 学习笔记

简介: 快速学习使用 dom4j 支持 XPATH 的操作一。

开发者学堂课程【XML入门 :使用 dom4j 支持 XPATH 的操作一】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/37/detail/870


使用 dom4j 支持 XPATH 的操作一

 

内容介绍

一、介绍 dom4j 里面使用 xpath

二、引入 jar 包

三、使用代码练习

四、重点强调

 

一、介绍 dom4j 里面使用 xpath

在默认情况下,dom4j 不支持 xpath。

如果想要在 dom4j  里面使用 xpath,需要引入支持 xpath 的 jar 包

 

二、引入 jar 包

1.介绍 jar 包

jar 包在资料里面.点击资料,再点击 dom4j-1.6.1

点开 lib 文件夹,里面有很多 jar 包。这里的 jar 包的含义是 dom4j 支持的其他 jar 包。比如说第一个 jaxen 的 jar 包,就是 dom4j 来支持 xpach 的 jar 包。

所以使用 jaxen-1.1-beta-6.jar,就需要把 jar 包导入到项目中。

2.怎么导入 jar 包

复制 jar 包,然后导入到 lib 目录下的 Paste 链接

右键点击 jaxen-1.1-beta-6.jar,然后点击 Build Path,然后再点击 Add to Build Path,

现在就可以在 Referenced Libraries 中看见 dom4j-1.6.1.jar 了。

再点击 jaxen-1.1-beta-6.jar,然后点击 Build Path,然后再点击 Add to Build Path,

就在 Referenced Libraries 里面做了一个 jaxen-1.1-beta-6.jar。

这就表示把 jar 包导入到了项目里面。

3.怎么使用 jar 包

在 dom4j 里面提供了两个方法,这两个方法用来支持 xpath

selectNodes("xpath 表达式")

-获取多个节点

selectSingleNode(“xpath 表达式”)

-获取一个节点

Single是单一的意思

 

三、使用代码练习

1.使用 xpath 实现:

查询 xml 中所有 name 元素的值

所有 name 元素的 xpath 表示://name

//查询 xml 中所有 name 元素的值中的 name(元素)有多个,所以使用selectNodes("xpath 表达式")方法

使用 selectNodes(“//name");

2.编写代码

//查询 xml 中的所有 name 元素的值

public static void test1() throws Exception {

/*

*1.得到 document

*2.直接使用 selectNodes("//name") 方法得到所有的 name 元素

*

* */

//得到 document

Dom4jUtils.getDocument(Dom4jUtils.PATH);

//此时得到 Document,返回 Document

Document document = Dom4jUtils.getDocument(Dom4jUtils.PATH);

//注意:这里的 Document在(org.dom4j) 项下

image.png

//使用 selectNodes("//name")方法得到所有的 name 元素

document selectNodes()

//直接输入 document,但是要注意 selectNodes

image.png

document selectNodes(”//name“)

//此时返回的是一个 list 集合

所以需要加一个泛型

List<Node> list = document selectNodes(”//name“)

//此时 List 是在(java.util)包下的。

//此时的 Node 是在(org.dom4j)包下的。

//遍历 list 集合

//遍历的方式:1.普通 for 循环;2.增强 for 循环;3.迭代器遍历

for (Node node : list) {

//node 是每一个 name 元素

node.getText();

//此时返回的是 String

//表示得到 name 元素里面的值

String s = node.getText();

System.out.println(s);

//通过这行代码就可以直接把 name 元素里面的值都可以得到

//可以发现通过最终方式写代码与前面写的代码相比,可以省去很多代码

}

}

3.实践

如果代码里面 name 的值是正确的,结果打印出来就 "zhangsan""lisi"

<person>

<p1 id1=”aaaa”>

<name>zhangsan</name>

<age>300</age>

<sex>nv</sex>

</p1>

<p1>

<name>lisi</name>

<age>30</age>

</p1>

</person>

开始运行

下面结果显示的是"zhangsan""lisi",代码正确。

image.png

4.完整代码

/*

*1.得到 document

*2.直接使用 selectNodes("//name") 方法得到所有的 name 元素

*

* */

//得到 document

Document document = Dom4jUtils.getDocument(Dom4jUtils.PATH);

//使用 selectNodes("//name")方法得到所有的 name 元素

List<Node> list = document selectNodes(”//name“)

//遍历 list 集合

for (Node node : list)  {

//node 是每一个 name 元素

//得到 name 元素里面的值

String s = node.getText();

System.out.println(s);

 

四、重点强调

1.name 元素的 xpath 表示是 //name;

2.name 元素使用的是 selectNodes 方法,因为 name 元素是多个元素;

3.name 元素绑的是 list 的集合,就需要对 list 进行遍历。

相关文章
|
6月前
|
XML JavaScript 前端开发
web学习笔记(二十二)DOM开始
web学习笔记(二十二)DOM开始
37 0
|
6月前
|
移动开发 JavaScript 前端开发
webgl学习笔记3_javascript的HTML DOM
webgl学习笔记3_javascript的HTML DOM
64 0
webgl学习笔记3_javascript的HTML DOM
|
JavaScript 前端开发
前端学习笔记202305学习笔记第二十九天-Socket.io文本编辑实时共享之原生dom导入和移除的技巧2
前端学习笔记202305学习笔记第二十九天-Socket.io文本编辑实时共享之原生dom导入和移除的技巧2
37 0
|
JavaScript 前端开发
JS 学习笔记四(DOM) 悬停事件 获取节点
JS 学习笔记四(DOM) 悬停事件 获取节点
60 0
|
JavaScript
JS 学习笔记四(DOM)(节点)
JS 学习笔记四(DOM)(节点)
56 0
|
JavaScript 前端开发 调度
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber和虚拟dom关系
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber和虚拟dom关系
82 0
|
JavaScript 前端开发
前端学习笔记202305学习笔记第二十九天-Socket.io文本编辑实时共享之原生dom导入和移除的技巧1
前端学习笔记202305学习笔记第二十九天-Socket.io文本编辑实时共享之原生dom导入和移除的技巧1
59 0
|
JavaScript 前端开发
前端学习笔记202305学习笔记第二十九天-Socket.io文本编辑实时共享之原生dom导入和移除的技巧3
前端学习笔记202305学习笔记第二十九天-Socket.io文本编辑实时共享之原生dom导入和移除的技巧3
49 0
|
JavaScript 前端开发
前端学习笔记202305学习笔记第二十九天-Socket.io文本编辑实时共享之原生dom导入和移除的技巧3
前端学习笔记202305学习笔记第二十九天-Socket.io文本编辑实时共享之原生dom导入和移除的技巧3
48 0
|
JavaScript 前端开发
前端学习笔记202304学习笔记第十二天-vue3.0-渲染es-footer的dom结构
前端学习笔记202304学习笔记第十二天-vue3.0-渲染es-footer的dom结构
63 0