使用 dom4j 实现查询 xml 操作(一)| 学习笔记

简介: 快速学习使用 dom4j 实现查询 xml 操作。

开发者学堂课程【XML入门 :使用 dom4j 实现查询 xml 操作(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

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


使用 dom4j 实现查询 xml 操作(一)

 

内容介绍

一、查询 xml 中所有 name 元素的值

二、查询第一个 name 元素的值

三、获取第二个 name 元素里的值

四、总结

 

一、查询 xml 中所有 name 元素的值

1.来到 p1.xml,查询所有 name 元素里面的值的步骤

第一步:创建解析器<person>

<p1>

<name>zhangsan</name>

<age>20</age>

</p1>

<p1>

<name>lisi</name>

<age>30</age>

</p1>

</person>

第二步:得到一个 document

解析从上到下依次解析,先解析 person 再是 p1,然后是 p1 里的 name。name 可以怎么得到?先得到 person,然后再得到 p1,最后才是 name

第三步:得到根节点: getrootelement{}

第四步:得到所有 p1 标签

第五步:得到 name

第六步:得到 name里面的值

2.得到所有的 p1

p1 在根节点的下面,p1 是一个 element,在 element 里有三个方法。

(1)element(qname) 表示获取标签下面的第一个子标签,qname 标签名称

(2)elements() 获取所有标签下面的所有一层子标签,不管什么名称,只要是子标签都可以得到

(3)elements(qname) 表示获取标签下面是这个名称的所有子标签(一层)

image.png

3.实现操作

在 src 下创建一个包,名字是 cn.itcast.dom4jtest ,在里面创建一个类,名字是TestDom4j,命名建议第一个字母大写,第二个单词首字母大写。

在 TestDom4j.java 中

import org.dom4j.io.SAXReader;

public class TestDom4j {

public static void main(String[] args) {

selectName();

}

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

public static void selectName()throws Exception {

selectName();

/*

*1、创建解析器

*2、得到 document

*3、得到根节点

*4、得到 p1

*5、得到 p1 下面的 name

*6、得到 name 里面的值

**/

//创建解析器

SAXReader saxReader = new SAXReader();注意:这个 saxReader 导入org.dom4j.io 这个包里

//得到 document  注意:这个 document 不是 w3c 的而是 dom4j

Document document = saxReader.read("src/p1.xml")

//得到根节点

Element root = document.getRootElement();这个包是 org.dom4j 下的,有时候会自动找出来但是要看对不对

//得到 p1

List  list root.elements("p1")表示得到所有的 p1,list 加一个版型,list 是 java.util 包下的,把 p1 放入 list 里去,要依次遍历 p1,再找到name

//遍历 list   用增强 for 循环

for (Element elememt : list){第二个 element 是每一个 p1

//得到p1下面的 name 元素

Element name1 = element.element("name");

String s = name1.getText();

System.out.println(s);

}

}

运行结果:

zhangsan、lisi

 

二、查询第一个 name 元素的值

//获取到第一个 name 元素的值

public static void selectSin()throws Exception {

selectSin();

Public static void selectSin() {

/*

*1、创建解析器

*2、得到 document

*3、得到根节点

*4、获取第一个 p1 元素

*5、得到 p1下面的 name 元素

*6、得到name元素里面的值

**/

//创建解析器

SAXReader saxReader = new SAXReader();

//得到 document  注意:这个 document 不是 w3c 的而是 dom4j

Document document = saxReader.read("src/p1.xml")

//得到根节点

Element root = document.getRootElement();

//得到第一个 p1

Element p1 = root.element("p1");

//得到 p1 下面的 name 元素

Element name1 = p1.element("name");

//得到 name 的值

String s1= name1.getText();

System.out.println(s1);

}

}

相关文章
|
机器学习/深度学习 人工智能 搜索推荐
AIGC的五个特点
【1月更文挑战第11天】AIGC的五个特点
1477 3
AIGC的五个特点
|
29天前
|
JSON 前端开发 API
技术解析:58同城房产数据平台 - 根据项目ID获取详情数据的API接口实践
本文探讨如何通过项目ID调用58同城房产API获取详情数据,涵盖接口原理、请求分析、参数结构、Python调用示例及反爬机制,强调合规性与技术风险,为房产数据开发提供参考。(239字)
95 0
|
8月前
|
机器学习/深度学习 人工智能 算法
普通人怎么学人工智能?这些隐藏学习秘籍大揭秘,生成式人工智能认证(GAI认证)来助力
在人工智能(AI)快速发展的今天,普通人学习AI已成为必然趋势。本文从明确学习目标与路径、利用多元化资源、注重实践应用、关注GAI认证及持续自我提升五个方面,为普通人提供系统化的AI学习指南。通过设定目标、学习编程语言、参与项目实践和获取专业认证,普通人可逐步掌握AI技能,在未来职场中占据优势并开启智能时代新篇章。
|
8月前
|
人工智能 安全 5G
5G网络安全全解析——新机遇与潜在风险
5G网络安全全解析——新机遇与潜在风险
357 4
|
9月前
|
Swift
DeepSeek开源Janus-Pro多模态理解生成模型,魔搭社区推理、微调最佳实践
DeepSeek开源Janus-Pro多模态理解生成模型,魔搭社区推理、微调最佳实践
478 1
|
10月前
|
安全 BI 数据安全/隐私保护
基于条件的访问控制——RBAC
基于角色的访问控制(RBAC)根据员工的角色和职责分配权限,确保用户仅能访问所需资源,降低数据泄露风险。通过ADManager Plus等工具,企业可以高效管理权限,减少手动操作,提升安全性并保护敏感信息。RBAC的核心原则是最小权限,即只为员工分配完成工作所需的权限。这不仅提高了工作效率,还减少了未经授权访问的风险,是防范网络威胁的有效手段。
215 3
|
人工智能 前端开发 PyTorch
【AI系统】动态图与静态图转换
从 TensorFlow、PyTorch 到 PaddlePaddle、MindSpore、MegEngine,主流 AI 框架经历了动静分离、动静结合到动静统一的发展过程。这些框架通过动态图转静态图技术,实现了计算效率与灵活性的平衡,显著提升了 AI 开发效率和产品应用的便利性。
388 14
|
JavaScript 算法 前端开发
彩某社js逆向
该内容是一个关于逆向工程的案例分析,讲述了如何破解财联社登录接口的加密参数`sign`。作者发现`sign`是通过`sha1`和`md5`混合加密的。经过调试,找到了加密算法的过程,并用JavaScript模拟了这个过程,最终成功生成了与接口相同的加密字符串。附有JS代码示例。
399 0
|
缓存 监控 负载均衡
万字讲解API网关的来龙去脉【珍藏】
万字讲解API网关的来龙去脉【珍藏】
3075 1
万字讲解API网关的来龙去脉【珍藏】
|
缓存 Ubuntu Linux
如何在 Linux 中查找命令的执行时间?
【4月更文挑战第24天】
570 1