当前位置:网站首页>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 :
边栏推荐
- French scholars: the explicability of counter attack under optimal transmission theory
- MIT-6.824-lab4B-2022(万字思路讲解-代码构建)
- 微服务(Microservice)那点事儿
- The Chinese output of servlet server and client is garbled
- How long does it take to obtain a PMP certificate?
- Fast parsing intranet penetration helps enterprises quickly achieve collaborative office
- Is the account opening link of Huatai Securities with low commission safe?
- How to do the project of computer remote company in foreign Internet?
- go踩坑——no required module provides package : go.mod file not found in current directory or any parent
- Blue sky nh55 series notebook memory reading and writing speed is extremely slow, solution process record
猜你喜欢
S32 design studio for arm 2.2 quick start
Netcore3.1 JSON web token Middleware
多回路仪表在基站“转改直”方面的应用
How many triangles are there in the golden K-line diagram?
Solution record of jamming when using CAD to move bricks in high configuration notebook
Hong Kong Jewelry tycoon, 2.2 billion "bargain hunting" Giordano
同事的接口文档我每次看着就头大,毛病多多。。。
如何有效对直流列头柜进行监测
Power operation and maintenance cloud platform: open the new mode of "unattended and few people on duty" of power system
青海省国家湿地公园功能区划数数据、全国湿地沼泽分布数据、全国省市县自然保护区
随机推荐
Recommended collection: build a cross cloud data warehouse environment, which is particularly dry!
取得PMP證書需要多長時間?
C语言中sizeof操作符的坑
[monitoring] ZABBIX
多回路仪表在基站“转改直”方面的应用
取得PMP证书需要多长时间?
人脸识别5- insight-face-paddle-代码实战笔记
如果炒股开华泰证券的户,在网上开户安全吗?
[IELTS reading] Wang Xiwei reading P4 (matching1)
打新债开户注册安全吗?有没有风险的?靠谱吗?
go踩坑——no required module provides package : go.mod file not found in current directory or any parent
Solve the problem that the virtual machine cannot be remotely connected through SSH service
青海省国家湿地公园功能区划数数据、全国湿地沼泽分布数据、全国省市县自然保护区
企业公司项目开发好一部分基础功能,重要的事保存到线上第一a
"Xiaodeng" domain password policy enhancer in operation and maintenance
Instructions for go defer
How long does it take to obtain a PMP certificate?
Ap8022 switching power supply small household appliances ACDC chip offline switching power supply IC
跨域请求
如何在外地外网电脑远程公司项目?