当前位置:网站首页>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文件中的相关元素和节点了)

边栏推荐
- Custom thread pool rejection policy
- Milkdown control icon
- toRaw和markRaw
- 2022-7-7 Leetcode 34. Find the first and last positions of elements in a sorted array
- 华为镜像地址
- AI talent cultivation new ideas, this live broadcast has what you care about
- [daily training] 648 Word replacement
- MySQL error 28 and solution
- Split screen bug notes
- 干货|总结那些漏洞工具的联动使用
猜你喜欢
![供应链供需预估-[时间序列]](/img/2c/82d118cfbcef4498998298dd3844b1.png)
供应链供需预估-[时间序列]

Vmware 与主机之间传输文件
![[fortress machine] what is the difference between cloud fortress machine and ordinary fortress machine?](/img/fb/17e029b1d955965d7e2e0f58701d91.png)
[fortress machine] what is the difference between cloud fortress machine and ordinary fortress machine?

Centso7 OpenSSL error Verify return code: 20 (unable to get local issuer certificate)

2022-7-7 Leetcode 34.在排序数组中查找元素的第一个和最后一个位置

LIS longest ascending subsequence problem (dynamic programming, greed + dichotomy)

118. Yanghui triangle

118. 杨辉三角

Take you to master the three-tier architecture (recommended Collection)

2022-7-6 beginner redis (I) download, install and run redis under Linux
随机推荐
Problems that cannot be accessed in MySQL LAN
118. 杨辉三角
ROS机器人更换新雷达需要重新配置哪些参数
Battle Atlas: 12 scenarios detailing the requirements for container safety construction
2022-7-6 Leetcode 977. Square of ordered array
Esp32 ① compilation environment
[daily training -- Tencent select 50] 231 Power of 2
requires php ~7.1 -&gt; your PHP version (7.0.18) does not satisfy that requirement
SSRF vulnerability file pseudo protocol [netding Cup 2018] fakebook1
搜索框效果的实现【每日一题】
供应链供需预估-[时间序列]
2022-7-6 beginner redis (I) download, install and run redis under Linux
Fast development board pinctrl and GPIO subsystem experiment for itop-imx6ull - modify the device tree file
室內ROS機器人導航調試記錄(膨脹半徑的選取經驗)
Best practice | using Tencent cloud AI willingness to audit as the escort of telephone compliance
.net core 关于redis的pipeline以及事务
[fortress machine] what is the difference between cloud fortress machine and ordinary fortress machine?
mysql导入文件出现Data truncated for column ‘xxx’ at row 1的原因
【日常训练】648. 单词替换
Take you to master the three-tier architecture (recommended Collection)