当前位置:网站首页>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文件中的相关元素和节点了)
边栏推荐
- Build a secure and trusted computing platform based on Kunpeng's native security
- MySQL "invalid use of null value" solution
- Getting started with MySQL
- flask session伪造之hctf admin
- How can the PC page call QQ for online chat?
- Flink | multi stream conversion
- [daily training] 648 Word replacement
- 2022-7-6 beginner redis (I) download, install and run redis under Linux
- 2022-7-7 Leetcode 34.在排序数组中查找元素的第一个和最后一个位置
- .net core 关于redis的pipeline以及事务
猜你喜欢
Ways to improve the performance of raspberry pie
566. Reshaping the matrix
Advanced Mathematics - Chapter 8 differential calculus of multivariate functions 1
566. 重塑矩阵
Co create a collaborative ecosystem of software and hardware: the "Joint submission" of graphcore IPU and Baidu PaddlePaddle appeared in mlperf
How far can it go to adopt a cow by selling the concept to the market?
[fortress machine] what is the difference between cloud fortress machine and ordinary fortress machine?
2022-7-6 Leetcode 977. Square of ordered array
Did login metamask
【堡垒机】云堡垒机和普通堡垒机的区别是什么?
随机推荐
JS slow motion animation principle teaching (super detail)
Flink | multi stream conversion
Take you to master the three-tier architecture (recommended Collection)
Error lnk2019: unresolved external symbol
交付效率提升52倍,运营效率提升10倍,看《金融云原生技术实践案例汇编》(附下载)
Distributed transaction solution
2022-7-6 使用SIGURG来接受外带数据,不知道为什么打印不出来
MySQL error 28 and solution
Laravel5 call to undefined function openssl cipher iv length() 报错 PHP7开启OpenSSL扩展失败
PostgreSQL array type, each splice
What parameters need to be reconfigured to replace the new radar of ROS robot
SSRF vulnerability file pseudo protocol [netding Cup 2018] fakebook1
Centso7 OpenSSL error Verify return code: 20 (unable to get local issuer certificate)
Final review notes of single chip microcomputer principle
Redis can only cache? Too out!
Mathématiques avancées - - chapitre 8 différenciation des fonctions multivariables 1
得物客服热线的演进之路
Esp32 ① compilation environment
xshell连接服务器把密钥登陆改为密码登陆
How far can it go to adopt a cow by selling the concept to the market?