当前位置:网站首页>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 :
边栏推荐
- QT addition calculator (simple case)
- Combien de temps faut - il pour obtenir un certificat PMP?
- 取得PMP證書需要多長時間?
- How to apply for PMP project management certification examination?
- 股票账户佣金怎么调低,炒股佣金怎么调低网上开户安全吗
- 【kotlin】第三天
- The Chinese output of servlet server and client is garbled
- 基于三维gis平台的消防系统运用
- What is the difference between port mapping and port forwarding
- ECCV 2022 | Tencent Youtu proposed disco: the effect of saving small models in self supervised learning
猜你喜欢
圖解網絡:什麼是網關負載均衡協議GLBP?
端口映射和端口转发区别是什么
45 year old professor, she threw two super unicorns
Robot reinforcement learning synergies between pushing and grassing with self supervised DRL (2018)
青海省国家湿地公园功能区划数数据、全国湿地沼泽分布数据、全国省市县自然保护区
ICML 2022 || 3DLinker: 用于分子链接设计的E(3)等变变分自编码器
图解网络:什么是网关负载均衡协议GLBP?
The input of uniapp is invalid except for numbers
[binary tree] the maximum difference between a node and its ancestor
Application of multi loop instrument in base station "switching to direct"
随机推荐
Jar batch management gadget
OSEK standard ISO_ 17356 summary introduction
[论文阅读] TUN-Det: A Novel Network for Thyroid Ultrasound Nodule Detection
Nine Qi single chip microcomputer ny8b062d single key control four LED States
Fast analysis -- easy to use intranet security software
取得PMP证书需要多长时间?
Why does infographic help your SEO
跨域请求
PaddleOCR教程
Build your own minecraft server with fast parsing
Tester's algorithm interview question - find mode
ICML 2022 | 3dlinker: e (3) equal variation self encoder for molecular link design
Phpcms paid reading function Alipay payment
【雅思阅读】王希伟阅读P4(matching2段落信息配对题【困难】)
Meet ThreadPoolExecutor
Using fast parsing intranet penetration to realize zero cost self built website
【监控】zabbix
"Xiaodeng" domain password policy enhancer in operation and maintenance
Introduction to ACM combination counting
Cross domain request