XML的运用(XML解析)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
性能测试 PTS,5000VUM额度
简介: Java中配置XML文件的三种配置位置机读取方式:常用的三种。

一、XML文件的三种配置位置机读取方式

Java中配置XML文件的三种配置位置机读取方式:常用的三种

1、同包下

在演式之前我们把前期演示的部分给准备好:

  1. 我们以properties为后缀的文本为例:
    ```
    uname=mybatis_ssm
    upass=xiaoli
    url=jdbc:mysql://localhost:3306/mybatis_ssm
    driver_Class=com.mysql.jdbc.Driver

initPoolSize=5
maxPoolSize=20

2. 然后就是一个`导包`:
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/647a2244987f4cdc9867835ec635c32b.png)
3. 代码示例:
![](https://ucc.alicdn.com/images/user-upload-01/a95cf2f5b5384b2481501a81104fabed.png)
4. 输出结果:是和db.properties文件里面driver_Class的值是一样的
 ![](https://ucc.alicdn.com/images/user-upload-01/57ed2c33c45c468ab78629095d3ab56c.png)
## 2、根路径下

> 在根路径下也就是不在同一个文件包里面。
> 功能和`同包下的方法是一样的`

1. 先在你的项目的根目录下新建一个`Source Folder`的包,然后把复制或者剪切db.properties这个文件在这里。
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/29882f1bb2144b0d979346093892f665.png)

2. 代码示例

> 是跟上面代码一样的,只是在一下代码更改了。
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/4e94bb5d2efa4671943cf07fbe5a83e3.png)


3. 输出结果
![](https://ucc.alicdn.com/images/user-upload-01/da1838ccf91d41319f7009b7c38e973a.png)



## 3、WEB-INF

> 想要访问WEB-INF里面的文件回合以上的方法有点小改变
1. 新建servlet
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/ad88c966547c4060a71ea33506937c1e.png)
2. 在WEB-INF的根目录里面把`db.properties`复制进去
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/992bcb48ac7c4f319f91e2c009cfea0d.png)

3. 代码示例![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/83ae0533e2d84303bf82a4e91951a832.png)

4. 输出结果
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/fc285e449412468fba4a3d32df600345.png)



# 二、XML常用解析

> Demo4J是一个Java项目示例库,里面包含了一些Java项目的基本实现,这些示例都是为了帮助初学者更好地了解Java开发的基础知识。示例库中的代码都是经过简化的版本,但是它们保留了所有的基本组件和相关的逻辑。

## 1、Demo4J常用的方法及使用:

> 概念:Demo4J是一个Java项目示例库,它提供了一些Java应用程序的基础实现示例,可以帮助开发者快速理解Java编程的基础概念和实现方法,也可以作为开发项目的起点。
>
>Demo4J包含了多个示例项目,每个项目都涵盖了不同的主题,例如Web应用程序、数据库访问、RESTful API和安全性等。示例代码都相对简单,但涵盖了Java应用程序的基本组件和相关逻辑。
>
>Demo4J使用Maven进行构建, 所有的源代码和配置文件都可以从公共代码库GitHub上获取。如果您是Java初学者,Demo4J可以提供帮助,科学、系统地了解Java编程的基础知识,并且可以快速地上手开发Java应用程序。而对于有经验的开发者,Demo4J也是一个很好的参考库,可以为您提供进一步的灵感和思考方向。

> Demo4J的常用方法分为了:`selectNodes`、`selectSingNode`、`attributeValue`、`getText`

展示代码的前提工作:
1. 新建一个在`同包`XML的文件

```xml
<?xml version="1.0" encoding="UTF-8"?>
<students>
    <student sid="s001">
        <name>小明</name>
    </student>
    <student sid="s002">
        <name>小芳</name>
    </student>
    <student sid='s003'>
        <name>小王</name>
    </student>
</students>

1)selectNodes

selectNodes是一种基于XPath表达式的方法,用于从XML文档中选择一个或多个节点,并返回一个NodeList对象。NodeList包含了所选节点的所有子节点,并按文档顺序排列。

  1. 提前准备工作,代码如下:
  2. 输出结果
    在这里插入图片描述
  3. 拿到/students/student里面所有值
  4. 输出结果
    在这里插入图片描述

2)selectSingleNode

selectSingleNode是一种XPath表达式的方法,用于从XML文档中选择一个节点,并返回一个Node对象。Node对象代表一个XML文档中的节点。如果有多个节点与指定的XPath模式匹配,则返回第一个匹配的节点。

1、asXML()

asXML()是JDOM库中Element类的一个方法,用于将当前元素及其子元素序列化为XML字符串。这个方法将元素的文本内容、属性和子元素都包含在内,并返回一个包含整个XML文档的字符串。

由以上代码进行修改===》拿到name标签的值:


输出结果:

2、getText()

getText()是JDOM库中Element类的一个方法,用于获取元素的文本内容。如果元素没有文本内容,该方法将返回一个空字符串 “”。

拿到name里面的值


输出结果:

3)attributeValue

attributeValue是一个Java方法,用于获取给定XML元素的属性值。XML元素是XML文档中的节点,可以包含属性,每个属性都有相应的属性值。attributeValue方法可以帮助开发者从XML文档中获取指定元素的属性值。


输出结果:
在这里插入图片描述

三、XML快速解析

1、xPath解析

XPath是一种用于定位XML文档中特定节点的语言。Java中有很多XPath解析器可以使用,其中比较流行的有JDOMdom4j和Java标准库中的javax.xml.xpath包。

代码演示

输出结果:

【ps】 xPath的运用常常会运用到爬虫技术

希望对你们有用!!!

相关文章
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
25天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
27天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
29天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
28天前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
75 0
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
28天前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
62 0
|
28天前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
49 0
|
28天前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
58 0

推荐镜像

更多