目录
一、Java中配置文件的三种配置位置及读取方式
同包
根路径
WIN-INF安全路径
二、XML解析方式
什么是DOM4J?
DOM4J常用方法
XPath的使用
案例:
一、Java中配置文件的三种配置位置及读取方式
-
同包
InputStream in = XmlReader.class.getResourceAsStream("config.xml");
-
根路径
InputStream in = XmlReader.class.getResourceAsStream("/config.xml");
-
WIN-INF安全路径
InputStream in = XmlReader.class.getResourceAsStream("WIN-INF/config.xml");
二、XML解析方式
同包
根路径
WIN-INF安全路径
xml解析方式有四种:DOM解析、SAX解析、DOM4J解析、JDOM解析。今天着重讲的是DOM4J
什么是DOM4J?
dom4j 是一个简单的开源库,用于处理 XML、 XPath 和 XSLT,它基于 Java 平台,使用 Java 的集合框架,全面集成了 DOM,SAX 和 JAXP。下载路径:
https://dom4j.github.io/
有jar包资源
还有代码演示教你如何操作
DOM4J常用方法
| 方法 | 描述 |
| selectNodes | 拿到多个节点 |
| selectSingleNode | 拿到单个节点 |
| attributeValue | 返回指定属性值,如果属性不存在,返回空字符串 |
| getText | 拿到元素文本 |
| getRootElemnent | 拿到根元素 |
XPath的使用
/ 定义路径
@ 属性
SelectNodes("/root/item/@name") 取 item 的 name 属性
案例:
/ 定义路径
@ 属性
需要用到的jar包
xml配置文件config.xml
]>
xml解析代码:
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);
//获取根元素
Element rootElement = doc.getRootElement();
List 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 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("=====================");
}
}
}
效果图如下:



