J2EE&XML解析&dom4j的使用

目录

一.Java中配置文件的三种方式及读取方式

同包 Demo01.class.getResourceAsStream("db.properties");

根路径 Demo01.class.getResourceAsStream("/db.properties");

WIN-INF安全路径 Demo01.class.getResourceAsStream("/WEB-IEF/db.properties");

二.dom4j的使用  常用方法

selectSingleNode

selectNodes

attributeValue

getText

三.xpath的使用

语法 

        ① / 定位路径

        ② @ 属性

案例

        查找s002学生姓名

     


一.Java中配置文件的三种方式及读取方式

  1. 同包 Demo01.class.getResourceAsStream("db.properties");

  2. 根路径 Demo01.class.getResourceAsStream("/db.properties");

  3. WIN-INF安全路径 Demo01.class.getResourceAsStream("/WEB-IEF/db.properties");

二.dom4j的使用  常用方法

  • selectSingleNode

  • selectNodes

  • attributeValue

  • getText

三.xpath的使用

语法 

        ① / 定位路径

        ② @ 属性

案例

        查找s002学生姓名

        

    
        小明
    

    
        小芳
    

    
        小王
    

        

//解析 查找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 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 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);
            }
        }
    }

}
 

你可能感兴趣的:(java-ee,xml,java,mysql,eclipse)