1.重要性
企业级--->框架--->配置文件--->XML--->约束dtd
1.XML的存放的位置不一样,如何通过代码去获取文件
2.XML中指定类容的获取
3.获取类容的简便方式
2.格式良好的XML
<persons> <persons>
3.XML文件中的元素约束
分类:文本.空 . 混合
个数分类: 0/1 : ? 0/n 1-n +
<!DOCTYPE rootElement
<!ELEMENT root
>
4.XML文件中的元素属性约束分类:
文本 . ID . IDREF. (..|..)
个数分类: 0/1 0-n 1-n
XML配置的作用:
如果我们要改工具类我们就会累死;
这样也说明了我们的XML的配置是有帮助的,我们可以把配置文件的信息可以都写在配置文件中如果我们要改我们到时候可以脱过去
方法1:
读取不同位置的配置文件 :同包 根目录 安全路径WEB-INF
让Properties工具类对象,加载含有db.properties文件类容所对应的流
package com.zkingahao; import java.io.IOException; import java.io.InputStream; import com.sun.xml.internal.fastinfoset.sax.Properties; /** * * @author Administrator * */ public class Demo1 { public static void main(String[] args) throws IOException { //通过类加载器加载配置文件(同包下) // InputStream in = demo1.class.getResourceAsStream("db.properties"); // Properties p = new Properties(); //通过类加载器加载配置文件(根路径下) InputStream in = Demo1.class.getResourceAsStream("/db.properties"); //安全路径 // InputStream in = req.getServletContext().getResourceAsStream("/WEB-INF/db.properties"); Properties p = new Properties(); //让Properties工具类对象,加载含有db.preperties文件类容所对应的流 p.load(in); System.out.println(p.getProperty("driver_Class")); System.out.println(p.getProperty("upass")); } }
步骤2:
先获取到需要解析的配置文件 获取所有student标签中的内容 获取name标签的内容 获取标签内部的内日容 获取标签属性值
public static void main(String[] args) throws Exception { //先获取到需要解析的配置文件 InputStream in = Demo2.class.getResourceAsStream("student.xml"); SAXReader sr = new SAXReader(); Document doc = sr.read(in); System.out.println(doc.asXML()); //获取所有student标签中的内容 List<Element> stuEles = doc.selectNodes("/student/student"); for (Element stuEle : stuEles) { //System.out.println(stuEle.asXML()); //获取name标签的内容 Element nameEle = (Element) stuEle.selectSingleNode("name"); //System.out.println(nameEle.asXML()); //获取标签内部的内容 System.out.println(nameEle.getText()); //获取标签属性值 System.out.println(stuEle.attributeValue("sid")); } } }
方法3:
1.先获取到需要解析的配置文件
2.再获取所有student标签中的内容后
3.进行xpath解析
public static void main(String[] args) throws Exception { InputStream in = Demo2.class.getResourceAsStream("student.xml"); SAXReader sr = new SAXReader(); Document doc = sr.read(in); //System.out.println(doc.asXML()); List<Element> stuEles = doc.selectNodes("/student/student"); for (Element stuEle : stuEles) { if("s002".equals(stuEle.attribute("sid"))) { Element nameEle = (Element) stuEle.selectSingleNode("name"); System.out.println(nameEle.getText()); } } Element nameEle = (Element) doc.selectSingleNode("/students/student[@sid='s002']/name"); System.out.println(nameEle.getText()); }