xpath 在java中的应用

xpath 作为xml的遍历工具,在自动测试中经常使用。同时我觉得也可以很好的应用于java项目的配置工作中,如数据库链接。当然java web项目有很多配置的方法。这里只是提出自定义一个配置xml文件,用xpath读取内容的方法,以供参考。
首先在项目根目录创建一个xml文件:db.xml 。我这里使用的mysql数据库

<?xml version="1.0" encoding="UTF-8"?>
<db>
<dburl>jdbc:mysql://127.0.0.1:3307/</dburl>
<dbdriver>com.mysql.jdbc.Driver</dbdriver>
<dbname>mydb</dbname>
<dbuser>root</dbuser>
<dbpsw></dbpsw>
</db>

创建一个java文件XMLload.java

public class XMLload {
    private static Node doc;
    private static XPath xpath;

    public XMLload() {
        // 创建Document对象
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        dbf.setValidating(false);
        DocumentBuilder db = null;
        try {
            db = dbf.newDocumentBuilder();
        } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
                File f = new File(XMLload.class.getResource("/db.xml").getFile());  //通过XMLload.class.getResource获取db.xml的绝对路径
            doc = db.parse(f);
        } catch (SAXException | IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // 创建XPath对象
        XPathFactory factory = XPathFactory.newInstance();
        xpath = factory.newXPath();

        HashMap<String, String> dbsource(){
        String driver = null;
        String url = null;
        String name = null;
        String psw = null;
        String user = null;
        try {
            driver = (String) xpath.evaluate("//dbdriver", doc, XPathConstants.STRING);
            url = (String) xpath.evaluate("//dburl", doc, XPathConstants.STRING);
            name = (String) xpath.evaluate("//dbname", doc, XPathConstants.STRING);
            user = (String) xpath.evaluate("//dbuser", doc, XPathConstants.STRING);
            psw = (String) xpath.evaluate("//dbpsw", doc, XPathConstants.STRING);
        } catch (XPathExpressionException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        HashMap<String, String> map = new HashMap<String, String>();
        map.put("dbdriver", driver);
        map.put("dburl", url);
        map.put("dbname", name);
        map.put("dbuser", user);
        map.put("dbpsw", psw);
        return map;
    }
}

这样在数据库设置文件中就可以通过xml文件来动态设置数据库链接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值