当前位置:网站首页>Parsing of XML
Parsing of XML
2022-07-04 23:55:00 【Timely】
Catalog
One 、Java Three configuration locations and reading methods of configuration files in
One 、Java Three configuration locations and reading methods of configuration files in
Same bag
InputStream in = XmlReader.class.getResourceAsStream("config.xml");The root path
InputStream in = XmlReader.class.getResourceAsStream("/config.xml");WIN-INF Safe path
InputStream in = XmlReader.class.getResourceAsStream("WIN-INF/config.xml");Two 、XML Analytical way
xml There are four parsing methods :DOM analysis 、SAX analysis 、DOM4J analysis 、JDOM analysis . Today I will focus on DOM4J
What is? DOM4J?
dom4j Is a simple open source library , Used for processing XML、 XPath and XSLT, It's based on Java platform , Use Java The collection framework of , Fully integrated DOM,SAX and JAXP. Download path :
Yes jar Package resources

There is also a code demonstration to teach you how to operate

DOM4J Common methods
| Method | describe |
| selectNodes | Get multiple nodes |
| selectSingleNode | Get a single node |
| attributeValue | Returns the specified property value , If the property does not exist , Returns an empty string |
| getText | Get the element text |
| getRootElemnent | Get the root element |
XPath Use
/ Define the path
@ attribute
SelectNodes("/root/item/@name") take item Of name attribute
Case study :
needed jar package

xml The configuration file 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
path CDATA #REQUIRED
name CDATA #REQUIRED
redirect (true|false) "false"
>
]>
<!--
config label : Can contain 0~N individual action label
-->
<config>
<!--
action label : Can be full of 0~N individual forward label path: With / Starting string , And the value must be unique Non empty , The path corresponding to the sub controller
type: character string , Non empty , The full class name of the sub controller
-->
<action path="/registerAction" type="test.action.RegisterAction">
<forward name="success" path="/index.jsp" redirect="true" />
<forward name="failed" path="/register.jsp" redirect="false" />
</action>
<action path="/loginAction" type="test.action.LoginAction">
<forward name="a" path="/index.jsp" redirect="false" />
<forward name="b" path="/welcome.jsp" redirect="true" />
</action>
</config>xml Parsing code :
package com.zking.demo;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class XmlReader {
public static void main(String[] args)throws Exception {
InputStream in = XmlReader.class.getResourceAsStream("/config.xml");
SAXReader sax = new SAXReader();
Document doc = sax.read(in);
// Get the root element
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("=====================");
}
}
}
The renderings are as follows :

边栏推荐
- "Xiaodeng" domain password policy enhancer in operation and maintenance
- 22-07-02周总结
- go踩坑——no required module provides package : go.mod file not found in current directory or any parent
- [IELTS reading] Wang Xiwei reading P4 (matching1)
- 青海省国家湿地公园功能区划数数据、全国湿地沼泽分布数据、全国省市县自然保护区
- Paddleocr tutorial
- OSEK standard ISO_ 17356 summary introduction
- Acrel-EMS综合能效平台在校园建设的意义
- 业务场景功能的继续修改
- How to do the project of computer remote company in foreign Internet?
猜你喜欢

45岁教授,她投出2个超级独角兽

如何避免电弧产生?—— AAFD故障电弧探测器为您解决

PMP证书续证流程

ECCV 2022 | 腾讯优图提出DisCo:拯救小模型在自监督学习中的效果

How many triangles are there in the golden K-line diagram?

快解析内网穿透帮助企业快速实现协同办公

端口映射和端口转发区别是什么

Tester's algorithm interview question - find mode

人脸识别5- insight-face-paddle-代码实战笔记

【雅思阅读】王希伟阅读P4(matching2段落信息配对题【困难】)
随机推荐
In the enterprise, win10 turns on BitLocker to lock the disk, how to back up the system, how to recover when the system has problems, and how to recover quickly while taking into account system securi
MP advanced operation: time operation, SQL, querywapper, lambdaquerywapper (condition constructor) quick filter enumeration class
城市轨道交通站应急照明疏散指示系统设计
Solution record of jamming when using CAD to move bricks in high configuration notebook
用快解析内网穿透实现零成本自建网站
How to reduce the stock account Commission and stock speculation commission? Is it safe to open an online account
[IELTS reading] Wang Xiwei reading P3 (heading)
How long does it take to obtain a PMP certificate?
Hash table, hash function, bloom filter, consistency hash
Servlet+jdbc+mysql simple web exercise
香港珠宝大亨,22亿“抄底”佐丹奴
How to use fast parsing to make IOT cloud platform
XML的解析
PermissionError: [Errno 13] Permission denied: ‘data. csv‘
Every time I look at the interface documents of my colleagues, I get confused and have a lot of problems...
js正则表达式之中文验证(转)
Summary of week 22-07-02
Observable time series data downsampling practice in Prometheus
S32 design studio for arm 2.2 quick start
Qualcomm WLAN framework learning (30) -- components supporting dual sta