当前位置:网站首页>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文件中的相关元素和节点了)
边栏推荐
- What are the principles for distinguishing the security objectives and implementation methods that cloud computing security expansion requires to focus on?
- 648. Word replacement: the classic application of dictionary tree
- How to make join run faster?
- Redis 核心数据结构 & Redis 6 新特性详
- Redis只能做缓存?太out了!
- Redis can only cache? Too out!
- C语言数组相关问题深度理解
- The delivery efficiency is increased by 52 times, and the operation efficiency is increased by 10 times. See the compilation of practical cases of financial cloud native technology (with download)
- ROS机器人更换新雷达需要重新配置哪些参数
- Ways to improve the performance of raspberry pie
猜你喜欢
SSRF vulnerability file pseudo protocol [netding Cup 2018] fakebook1
Cinnamon taskbar speed
交付效率提升52倍,运营效率提升10倍,看《金融云原生技术实践案例汇编》(附下载)
Redis只能做缓存?太out了!
Supply chain supply and demand estimation - [time series]
Advanced Mathematics - Chapter 8 differential calculus of multivariate functions 1
Sliding rail stepping motor commissioning (national ocean vehicle competition) (STM32 master control)
Indoor ROS robot navigation commissioning record (experience in selecting expansion radius)
2022-7-6 Leetcode 977.有序数组的平方
得物客服热线的演进之路
随机推荐
Enregistrement de la navigation et de la mise en service du robot ROS intérieur (expérience de sélection du rayon de dilatation)
Flink | 多流转换
Esp32 construction engineering add components
Flask session forged hctf admin
2022-7-7 Leetcode 844. Compare strings with backspace
Sliding rail stepping motor commissioning (national ocean vehicle competition) (STM32 master control)
Deep understanding of array related problems in C language
Drawerlayout suppress sideslip display
What are the principles for distinguishing the security objectives and implementation methods that cloud computing security expansion requires to focus on?
Lavarel之环境配置 .env
Mathématiques avancées - - chapitre 8 différenciation des fonctions multivariables 1
648. Word replacement: the classic application of dictionary tree
ES日志报错赏析-Limit of total fields
mysql ”Invalid use of null value“ 解决方法
高等數學---第八章多元函數微分學1
AI人才培育新思路,这场直播有你关心的
Introduction to database system - Chapter 1 introduction [conceptual model, hierarchical model and three-level mode (external mode, mode, internal mode)]
Did login metamask
室內ROS機器人導航調試記錄(膨脹半徑的選取經驗)
Split screen bug notes