博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dom4j解析XML配置文件
阅读量:6124 次
发布时间:2019-06-21

本文共 3866 字,大约阅读时间需要 12 分钟。

hot3.png

Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。在程序中对于读取一些配置文件,一般都采用单例模式来做,比如jdbc数据库的连接配置文件。

下面定义一个叫做JdbcConfig的类来保存jdbc连接的一些信息,且覆盖了toString()方法

package com.xml.util; /** * jdbc配置信息 * */public class JdbcConfig {     @Override    public String toString(){        return this.getClass().getName()+"{driverName:"+driverName+",url:"+url+",userName:" +userName+"}";    }    //驱动名称     private String driverName;    //驱动地址    private String url;    //用户名      private String userName;    //密码    private String passWord;     public String getDriverName() {        return driverName;    }    public void setDriverName(String driverName) {        this.driverName = driverName;    }    public String getUrl() {        return url;    }    public void setUrl(String url) {        this.url = url;    }    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public String getPassWord() {        return passWord;    }    public void setPassWord(String passWord) {        this.passWord = passWord;    } }

sys-config.xml为要解析的数据库信息的xml文件

oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin: :1521:orcl
followCar
followCar

XmlConfigReader使用dom4j来解析xml文件

package com.xml.util; import java.io.InputStream; import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader; /** * 采用单例模式解析XML配置文件  *   pinglq * */public class XmlConfigReader {    //单例模式-懒汉式(真正使用的时候实例化
<延迟加载>
) private static XmlConfigReader instance =null; private JdbcConfig jdbcConfig = new JdbcConfig(); //私有构造器,通过SAXReader的方式读取配置文件sys-config.xml文件中的数据库信息. private XmlConfigReader(){ // 使用SAXReader的方式读取XML SAXReader reader = new SAXReader(); //通过当前线程装载文件配置文件 InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-conf.xml"); try { //将配置文件装载到Document对象中 Document doc = reader.read(in); //采用Xpath方式获取配置文件中的相关信息 //取得jdbc相关配置信息. Element driverName = (Element)doc.selectObject("/config/db-info/driver-name"); Element url = (Element)doc.selectObject("/config/db-info/url"); Element passWord = (Element)doc.selectObject("/config/db-info/password"); Element userName = (Element)doc.selectObject("/config/db-info/username"); //将从xml获取的配置信息写入jdbcConfig实例中 jdbcConfig.setDriverName(driverName.getStringValue()); jdbcConfig.setPassWord(passWord.getStringValue()); jdbcConfig.setUrl(url.getStringValue()); jdbcConfig.setUserName(userName.getStringValue()); System.out.println("读取jdbcConfig-->>"+jdbcConfig); } catch (DocumentException e) { // TODO: handle exception e.printStackTrace(); } } //公共的静态的入口方法 //为了防止多线程多个对象保证单例,添加同步关键字synchronized. public static synchronized XmlConfigReader getInstance(){ //判断是否实例化 if(instance==null){ instance = new XmlConfigReader(); } return instance; } //返回jdbc相关配置 public JdbcConfig getJdbcConfig(){ return jdbcConfig; } //测试是否成功读取相关配置信息. public static void main(String[] args){ JdbcConfig jdbcConfig =XmlConfigReader.getInstance().getJdbcConfig(); System.out.println(jdbcConfig.getDriverName()); System.out.println(jdbcConfig.getPassWord()); System.out.println(jdbcConfig.getUrl()); System.out.println(jdbcConfig.getUserName()); System.out.println(jdbcConfig); } }

转载于:https://my.oschina.net/coolbash/blog/79472

你可能感兴趣的文章
Response.Redirect(),Server.Transfer(),Server.Execute()的区别与网站优化
查看>>
validator
查看>>
linux命令备忘录
查看>>
用原生js实现一个页面乘法口诀表
查看>>
HttpWebRequest.GetResponse 方法 转载
查看>>
【294】◀▶ Python 字符串说明
查看>>
ORA-12541:TNS:no listener 客户端tnsnames.ora配置,以及服务端listener.ora配置
查看>>
mudbox安装未完成,某些产品无法安装的解决方法
查看>>
excel 2007 无法输入中文
查看>>
POJ 3279
查看>>
Effective C++学习之-------若所有参数皆需类型转换,请为此采用non-member函数
查看>>
VM Depot 助您使用本地开源软件架设开发 Web 站点
查看>>
What’s new in Spark 1.2.0
查看>>
[LeetCode] 6. ZigZag Conversion
查看>>
Ansible
查看>>
VirtualBox实现宿主机和虚拟机之间网络的通讯
查看>>
Django--中间件
查看>>
openshift pod对外访问网络解析
查看>>
C++系列总结——mutable关键字
查看>>
JavaScript_1
查看>>