一.什么是配置文件?
配置文件就是作配置的,常见的的后缀名有 : .properties .xml .yml
二,为什么要用到配置文件?
我的理解是:方便别人用到我所定义的方法时,别人能够快速的入手,并且能节约成本。
又比如:在公司之中,我们常常需要导入外部的xml文件,和让别人使用我们的文件,这时我们只需要修改配置文件就能解决问题。
三.如何获取XML所在位置
分类:
1.同包名下
2.根目录下
3.安全目录下
package com.lya.xml1; import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * 获取不同位置的xml * @author 微微 * */ public class Dome1 { public static void main(String[] args) throws Exception { //1.通过类加载文件 InputStream is = Dome1.class.getResourceAsStream("config.properties"); //2.创建一个XML解析 Properties po = new Properties(); //3.调用Properties load的方法 po.load(is); System.out.println(po.getProperty("driver"));//获取com.mysql.jdbc.Driver // //1.通过类加载文件 // InputStream is = Dome1.class.getResourceAsStream("/config.properties"); // //2.创建一个XML解析 // Properties po = new Properties(); // //3.调用Properties load的方法 // po.load(is); // System.out.println(po.getProperty("driver"));//获取com.mysql.jdbc.Driver } }
四.如何获取XML内容(dom4j)
步骤思路:
//1.通过类加载文件 InputStream is Dome2.class.getResourceAsStream("students.xml");
//2.创建一个dom4中的方法SAXReader SAXReader sr = new SAXReader();
//3.调用SAXReader read的方法 Document read = sr.read(is);
dom4中的方法:
1.selectNodes 获取XML中的所有内容
2.selectSingleNode 获取XML中的指定元素
3.getText 获取XML中的指定元素的内容
4.attributevalue 获取XML中的指定标签的属性
package com.lya.xml1; import java.io.IOException; import java.io.InputStream; import java.util.List; import java.util.Properties; import javax.xml.transform.sax.SAXResult; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.io.SAXReader; /** * 获取XML中的内容(dom4j使用) * @author 微微 * */ public class Dome2 { public static void main(String[] args) throws Exception { //1.通过类加载文件 InputStream is = Dome2.class.getResourceAsStream("students.xml"); //2.创建一个dom4j中的方法SAXReader SAXReader sr = new SAXReader(); //3.调用SAXReader read的方法 Document read = sr.read(is); //System.out.println(read.asXML()); //这里一定要调用dom4j中的asXML()方法。否则会打印地址 // <?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> List <Element>selectNodes = read.selectNodes("/students/student"); //因为/students/student 位于students.xml中 。所以要用/ for (Element element : selectNodes) { // 获取students // System.out.println(element.asXML());//得到 // <students> // <student sid="s001"> // <name>小明</name> // </student> // <student sid="s002"> // <name>小芳</name> // </student> // <student sid="s003"> // <name>小王</name> // </student> // </students> // 获取student中的name Node selectSingleNode = element.selectSingleNode("name"); // System.out.println(selectSingleNode.asXML()); // <name>小明</name> // <name>小芳</name> // <name>小王</name> // 获取name中的文本 // System.out.println(selectSingleNode.getText()); // 获取指定元素属性 // System.out.println(element.attributeValue("sid")); // 根据指定元素获取指定元素属性 if(element.attributeValue("sid").equals("s002")) { System.out.println(element.asXML()); } } } }
五.xpath的使用
//按照Xpath解析的格式//*[@id="csdn-toolbar"]/div
package com.lya.xml1; import java.io.InputStream; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Node; import org.dom4j.io.SAXReader; /** * Xpath使用 * @author 微微 * */ public class Demo3 { public static void main(String[] args) throws Exception { //1.通过类加载文件 InputStream is = Dome2.class.getResourceAsStream("students.xml"); //2.创建一个dom4j中的方法SAXReader SAXReader sr = new SAXReader(); //3.调用SAXReader read的方法 Document read = sr.read(is); //按照Xpath解析的格式//*[@id="csdn-toolbar"]/div Node selectSingleNode = read.selectSingleNode("/students/student[@sid='s001']"); System.out.println(selectSingleNode.asXML()); } }