当前位置:网站首页>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 :

边栏推荐
- Fast parsing intranet penetration helps enterprises quickly achieve collaborative office
- 【监控】zabbix
- Application of fire fighting system based on 3D GIS platform
- Hong Kong Jewelry tycoon, 2.2 billion "bargain hunting" Giordano
- Jar批量管理小工具
- 【雅思阅读】王希伟阅读P3(Heading)
- 电力运维云平台:开启电力系统“无人值班、少人值守”新模式
- 他做国外LEAD,用了一年时间,把所有房贷都还清了
- [path planning] RRT adds dynamic model for trajectory planning
- [IELTS reading] Wang Xiwei reading P3 (heading)
猜你喜欢

城市轨道交通站应急照明疏散指示系统设计

OSEK standard ISO_ 17356 summary introduction

青海省国家湿地公园功能区划数数据、全国湿地沼泽分布数据、全国省市县自然保护区

同事的接口文档我每次看着就头大,毛病多多。。。

Ap8022 switching power supply small household appliances ACDC chip offline switching power supply IC

Illustrated network: what is gateway load balancing protocol GLBP?

电力运维云平台:开启电力系统“无人值班、少人值守”新模式

如何用快解析自制IoT云平台

uniapp 除了数字,其他输入无效

js如何实现数组转树
随机推荐
Acrel-EMS综合能效平台在校园建设的意义
如何将自己的代码作品快速存证,已更好的保护自己劳动成果
js正则表达式之中文验证(转)
Is the account opening link of Huatai Securities with low commission safe?
Build your own minecraft server with fast parsing
go踩坑——no required module provides package : go.mod file not found in current directory or any parent
Cross domain request
It's too convenient. You can complete the code release and approval by nailing it!
【北京大学】Tensorflow2.0-1-开篇
Observable time series data downsampling practice in Prometheus
香港珠宝大亨,22亿“抄底”佐丹奴
"Xiaodeng" domain password policy enhancer in operation and maintenance
Chinese verification of JS regular expressions (turn)
快解析内网穿透帮助企业快速实现协同办公
【雅思阅读】王希伟阅读P4(matching1)
Compare two vis in LabVIEW
Recommended collection: build a cross cloud data warehouse environment, which is particularly dry!
How to avoid arc generation—— Aafd fault arc detector solves the problem for you
Etcd database source code analysis - brief process of processing entry records
同事的接口文档我每次看着就头大,毛病多多。。。