dom4j读取xml

本文介绍了dom4j的基本概念,它是一个强大的XML API,广泛应用于Java项目中,如Hibernate。接着讲解了如何获取Document对象的两种方法,并通过一个实例展示了如何使用单例模式读取sys-config.xml文件获取jdbc配置。
摘要由CSDN通过智能技术生成

           一、dom4j是什么?

                      dom4j是一个Java的XML API,用来读写XML文件的。具有性能优异、功能强大和极端易用使用的特点,应用极其广泛,sun公司的hibernate就是应用了dom4j

         二、如何用?

                      获取document两种方法:

                1.

       SAXReader reader = new SAXReader();                
       Document   document = reader.read(new File("sys-config.xml")); 
                2.     
       Document document = DocumentHelper.createDocument();             //创建根节点  
       Element root = document.addElement("root");  
        

        三、实例:采用单例模式利用dom4j读取sys-config.xml,获取jdbc配置字符串

                1.项目web-inf/lib下copy dom4j-1.6.1.jar 文件

                2.在类XMLConfigReader中

package com.bjpowernode.drp.util;

import java.io.InputStream;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * 解析sys-config文件,采用单例模式
 * @author liushuo
 *
 */
public class XmlConfigReader {
	//饿汉式
	/*private static XmlConfigReader instance = new XmlConfigReader();
	private  XmlConfigReader() {
		
	}
	public static XmlConfigReader getInstance() {
		return instance;
	}*/
	
	//懒汉式(延迟加载)
	private static XmlConfigReader instance =null;
	
	private JdbcConfig jdbcConfig = new JdbcConfig();
	private XmlConfigReader() {
		SAXReader reader = new SAXReader();
		InputStream	in= Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml");
		try {
			Document doc = reader.read(in);
			//取得jdbc相关配置信息
			Element driverNameEle =(Element) doc.selectObject("/config/db-info/driver-name");
			Element urlEle =(Element) doc.selectObject("/config/db-info/url");
			Element userNameEle =(Element) doc.selectObject("/config/db-info/user-name");
			Element passwordEle =(Element) doc.selectObject("/config/db-info/password");
			//设置jdbc相关配置
			jdbcConfig.setDriverName(driverNameEle.getStringValue());//driver-name节点的内容
			jdbcConfig.setUrl(urlEle.getStringValue());
			jdbcConfig.setUserName(userNameEle.getStringValue());
			jdbcConfig.setPasswrod(passwordEle.getStringValue());
			    
		} catch (DocumentException e) {
			e.printStackTrace();
		}
		
	}              //synchronized是个锁,具有互斥的作用,同步的关键字
	public static synchronized XmlConfigReader getInstance() {
		if (instance==null) {
			instance = new XmlConfigReader();
			
		}
		return instance;
	}
	 
	public JdbcConfig getJdbcConfig(){
		return jdbcConfig;
	}
	
	public static void main(String[] args) {
		//获取jdbc配置信息 
		JdbcConfig jdbcConfig = XmlConfigReader.getInstance().getJdbcConfig();
	/*	System.out.println(jdbcConfig.getDriverName());
		System.out.println(jdbcConfig.getUrl());
		System.out.println(jdbcConfig.getPasswrod());
		System.out.println(jdbcConfig.getUserName());*/
		System.out.println(jdbcConfig);
		
	}

}
console输出:com.bjpowernode.drp.util.JdbcConfig{driverName:oracle.jdbc.driver.OracleDriver,url:jdbc:oracle:thin:@localhost:1521:orcl,username:root}
        


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值