1. Java中配置文件的三种配置位置及读取方式
1.1 XML和*.properties(属性文件)
1.2 存放位置
1.2.1 src根目录下
Xxx.class.getResourceAsStream("/config.properties");
1.2.2 与读取配置文件的类在同一包
Xxx.class.getResourceAsStream("config2.properties");
1.2.3 WEB-INF(或其子目录下)
ServletContext application = this.getServletContext();
InputStream is =
application.getResourceAsStream("/WEB-INF/config3.properties");
注1:*.properties文件
key=value
#注释
Properties.load(is)
2. XML的作用
配置
*.properties
*.xml
数据交换
xml
webservice
json
3. dom4j+xpath解析xml文件
xpath等同数据库的select语句
document.selectNodes(xpath);//查一组
Document document = sr.read(is);
List<Element> actionEleList = document.selectNodes("/config/action");
for (Element actionEle : actionEleList) {
String pathValue = actionEle.attributeValue("path");
System.out.println(pathValue);
document.selectSingleNode(xpath);//查单个
Document doc = sr.read(is);
Element actionEle = (Element) doc.selectSingleNode("/config/action[@path='/registerAction']");
System.out.println(actionEle.attributeValue("type"));
Element forwardEle = (Element) actionEle.selectSingleNode("forward[@name='failed']");
System.out.println(forwardEle.attributeValue("path"));DOM由节点组成
Node
元素节点
属性节点
文本节点
xpath
/ 定位路径 在系统中建一个文件叫document/students/student/sid|name
@ 属性
案例:
students.xml
<?xml version="1.0" encoding="UTF-8"?> <students> <student sid="s001"> <name>小明</name> </student> <student sid="s002"> <name>小芳</name> </student> <student sid='s003'> <name>小王</name> </student> </students>
XmlParse.java
package com.javaxl.parse;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
/**
* 关于xml解析
* selectNodes
* selectSingleNode
* @author Administrator
*
*/
public class XmlParse {
public static void main(String[] args) throws DocumentException {
InputStream in = XmlParse.class.getResourceAsStream("students.xml");
// SAXReader = java.util.properties
SAXReader sr = new SAXReader();
Document doc = sr.read(in);
// System.out.println(doc.asXML());
// xpath包支持按目录结构的形式查找标签
// List<Element> stuEles = doc.selectNodes("/students/student");
// for (Element stuEle : stuEles) {
// System.out.println(stuEle.asXML());
// }
Element stuS002Ele = (Element) doc.selectSingleNode("/students/student[@sid='s002']");
System.out.println(stuS002Ele.asXML());
System.out.println(stuS002Ele.attributeValue("sid"));
System.out.println(((Element)stuS002Ele.selectSingleNode("name")).asXML());
}
}
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有