1.Java中配置文件的三种配置位置及读取方式
InputStream is(返回值)= 类名.class.getResourceAsStream("db.properties");
- 根路径:
InputStream is(返回值)= 类名.class.getResourceAsStream("/db.properties");
InputStream is(返回值)= req.getServletContext().getResourceAsStream("/WEB-INF/db.properties");
2.xml的解析方式
xml解析方式有四种:DOM解析、SAX解析、DOM4J解析、JDOM解析。今天着重讲的是DOM4J
2.1什么是DOM4J?
dom4j 是一个简单的开源库,用于处理 XML、 XPath 和 XSLT,它基于 Java 平台,使用 Java 的集合框架,全面集成了 DOM,SAX 和 JAXP。
2.2demo4的常用方法
方法 | 作用 |
selectNodes | 获取某一个节点,集合 |
selectSingleNode | 获取单个节点 |
attributeValue | 获取某一个标签属性 |
getText | 获取某一个标签内容 |
以下用代码使用上面方法:
public static void main(String[] args) throws Exception { // 先获取到需要的配置 InputStream is = demo2.class.getResourceAsStream("students.xml"); SAXReader sa=new SAXReader(); Document doc = sa.read(is); // System.out.println(doc.asXML()); // 获取所有students标签中的内容 List<Element> stuEles = doc.selectNodes("/students/student"); // 遍历 for (Element stuEls : stuEles) { // System.out.println(stuEls.asXML()); // 获取所有name标签内容 Element nameEls = (Element) stuEls.selectSingleNode("name"); // System.out.println(nameEls.asXML()); // 获取标签内部的内容 System.out.println(nameEls.getText()); // 获取标签属性值,即学生的学号 System.out.println(stuEls.attributeValue("sid")); } }
2.3XPath的使用
/定义路径[@获取的东西/属性
public static void main(String[] args) throws Exception { // 获取sid=s002学生的姓名 // 先获取到需要的配置 InputStream is = demo2.class.getResourceAsStream("students.xml"); SAXReader sa=new SAXReader(); Document doc = sa.read(is); // System.out.println(doc.asXML()); // 获取所有students标签中的内容 List<Element> stuEles = doc.selectNodes("/students/student"); Element nameEls = (Element) doc.selectSingleNode("/students/student[@sid='s002']/name"); System.out.println(nameEls.getText()); } // 结果为:小芳