当前位置:网站首页>XML文件的解析操作
XML文件的解析操作
2022-07-07 11:59:00 【小阿飞_】
本期精彩
目录
需具备的知识
1、Java中配置文件的三种配置位置及读取方式
类名.class.getResourceAsStream("xxx"):拿到同包下的文件
类名.class.getResourceAsStream("/xxx"):拿到根目录下的文件
context.getResourceAsStream("/WIN-INF/xxx"):拿到WIN-INF安全路径
2、dome4j常用方法
selectNodes:拿到多个元素
selectSingleNode:拿到单个元素
getRootElement():拿到根元素
attributeValue:只有元素才可以点出这个方法来获取值
getText:拿到元素文本
注:元素可以是节点,但是元素中的属性是节点不是元素
3、xpath语法
/:定位路径
@:属性
解析XML的代码操作
1、需要解析的XML案例(config.xml文件)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config[
<!ELEMENT config (action*)>
<!ELEMENT action (forward*)>
<!ELEMENT forward EMPTY>
<!ATTLIST action
path CDATA #REQUIRED
type CDATA #REQUIRED
>
<!ATTLIST forward
name CDATA #REQUIRED
path CDATA #REQUIRED
redirect (true|false) "false"
>
]>
<config>
<action path="/studentAction" type="org.lisen.mvc.action.StudentAction">
<forward name="students" path="/students/studentList.jsp" redirect="false"/>
</action>
<action path="/studentAction02" type="org.lisen.mvc.action.StudentAction">
<forward name="students02" path="/students/studentList.jsp" redirect="false"/>
</action>
</config>2、在编写解析代码之前需要导入的jar包

3、编写解析操作的代码
public class XmlReader {
public static void main(String[] args) throws Exception {
InputStream in = XmlReader.class.getResourceAsStream("/config.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(in);
Element rootElement = doc.getRootElement();
List<Element> actions = rootElement.selectNodes("action");
for(Element e: actions) {
String path = e.attributeValue("path");
String type = e.attributeValue("type");
System.out.println("action path = "+path);
System.out.println("action type = "+type);
List<Element> forwards = e.selectNodes("forward");
for(Element f: forwards) {
String name = f.attributeValue("name");
String fPath = f.attributeValue("path");
String redirect = f.attributeValue("redirect");
System.out.println("forward name = "+name);
System.out.println("forward fPath = "+fPath);
System.out.println("forward redirect = "+redirect);
}
System.out.println("已结束解析");
}
}
}输出结果(可以看到已经获取到了上面所提供的XML文件中的相关元素和节点了)

边栏推荐
- Social responsibility · value co creation, Zhongguancun network security and Information Industry Alliance dialogue, wechat entrepreneur Haitai Fangyuan, chairman Mr. Jiang Haizhou
- Help tenants
- Redis 核心数据结构 & Redis 6 新特性详
- 室內ROS機器人導航調試記錄(膨脹半徑的選取經驗)
- Ikvm of toolbox Net project new progress
- 2022-7-6 Leetcode 977. Square of ordered array
- postgresql array类型,每一项拼接
- Deep understanding of array related problems in C language
- Flink | multi stream conversion
- . Net core about redis pipeline and transactions
猜你喜欢

Getting started with MySQL
![SSRF vulnerability file pseudo protocol [netding Cup 2018] fakebook1](/img/10/6de1ee8467b18ae03894a8d5ba95ff.png)
SSRF vulnerability file pseudo protocol [netding Cup 2018] fakebook1

Milkdown control icon

最佳实践 | 用腾讯云AI意愿核身为电话合规保驾护航

TPG x AIDU | AI leading talent recruitment plan in progress!

高等数学---第八章多元函数微分学1

Best practice | using Tencent cloud AI willingness to audit as the escort of telephone compliance

Custom thread pool rejection policy

Navicat run SQL file import data incomplete or import failed

室内ROS机器人导航调试记录(膨胀半径的选取经验)
随机推荐
Help tenants
云计算安全扩展要求关注的安全目标和实现方式区分原则有哪些?
Detr introduction
call undefined function openssl_ cipher_ iv_ length
10 pictures open the door of CPU cache consistency
ROS机器人更换新雷达需要重新配置哪些参数
Lavarel之环境配置 .env
1. Deep copy 2. Call apply bind 3. For of in differences
Indoor ROS robot navigation commissioning record (experience in selecting expansion radius)
requires php ~7.1 -&gt; your PHP version (7.0.18) does not satisfy that requirement
ES日志报错赏析-Limit of total fields
Supply chain supply and demand estimation - [time series]
高等數學---第八章多元函數微分學1
MySQL "invalid use of null value" solution
move base参数解析及经验总结
Split screen bug notes
THINKPHP框架的优秀开源系统推荐
[high frequency interview questions] difficulty 2.5/5, simple combination of DFS trie template level application questions
MySQL error 28 and solution
Social responsibility · value co creation, Zhongguancun network security and Information Industry Alliance dialogue, wechat entrepreneur Haitai Fangyuan, chairman Mr. Jiang Haizhou