一.Java中配置文件的三种方式及读取方式
- 同包 Demo01.class.getResourceAsStream("db.properties");
- 根路径 Demo01.class.getResourceAsStream("/db.properties");
- WIN-INF安全路径 Demo01.class.getResourceAsStream("/WEB-IEF/db.properties");
二.dom4j的使用 常用方法
三.xpath的使用
语法
① / 定位路径
② @ 属性
案例
查找s002学生姓名
<?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> //解析 查找s001学生姓名 public class Demo02 { public static void main(String[] args) throws DocumentException { InputStream in = Demo02.class.getResourceAsStream("students.xml"); SAXReader reader = new SAXReader(); Document doc = reader.read(in); String name = doc.selectSingleNode("/students/student[@sid='s001']/name").getText(); System.out.println(name); } }
例如:
package com.zking.xmlparse; import java.io.InputStream; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Demo04 { public static void main(String[] args) throws DocumentException { //先通过类路径获取XML文件的输入流 InputStream in = Demo04.class.getResourceAsStream("/config.xml"); SAXReader reader = new SAXReader(); //然后使用SAXReader读取输入流并解析成Document对象 Document doc = reader.read(in); //接着获取XML文件的根元素 Element root = doc.getRootElement(); //并通过selectNodes方法获取所有名为"action"的子元素列表 List<Element> nodes = root.selectNodes("action"); //遍历每一个"action"元素 for (Element el : nodes) { //并获取其"path"和"type"属性的值 String path = el.attributeValue("path"); String type = el.attributeValue("type"); System.out.println(path); System.out.println(type); //然后通过selectNodes方法获取其所有名为"forward"的子元素列表 List<Element> forward = el.selectNodes("forward"); //遍历每一个"forward"元素 for (Element el2 : forward) { //并获取其"name"、"path"和"redirect"属性的值 String name = el2.attributeValue("name"); String path2 = el2.attributeValue("path"); String redirect = el2.attributeValue("redirect"); //最后将获取的值输出到控制台上 System.out.println(name); System.out.println(path2); System.out.println(redirect); } } } }