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晓码阁 版权所有