config4j 用于简化XML配置文件读取的

由于每次都要去鼓捣 dom4j 来读取xml配置文件,觉得很不方便,于是今天下午就鼓捣出一个专门简化xml配置文件读取的工具,暂时命名为 config4j 吧!哈哈

 

目前暂定 1.0 版本,如果大家有兴趣可以下载试用,我这里给出一个DEMO,如有意见大家多提,我会把这个小工具一直维护下去的!

 

这里取XML值的方式参照了XPATH的方法。

有几种方式:

1- 直接取属性MAP  --->  $properties

2- 直接取结点ConfigNode  --> $node

3- 直接取孩子结点表 List<ConfigNode>   ---> $children

4- 直接取TEXT值  String  ---> $value

 

5- 取某个属性值 String  ----> 属性名

 

当然也可以取出根结点ConfigNode 可以单个取其子结点。

 

谢谢。。。

 

注意:config4j是依赖与dom4j的!

 

	public static void main(String[] args){
		ConfigBuilder cb	= new ConfigBuilder("config/db-config.xml");
		
		/**
		 * 这个是 getValueByPath(path) 的注释
		 * 
		 * 自定义路径 
		 * 例子:
		 * ROOT.NODE.CNODE@att1       末结点路径下的属性值 		返回 String
		 * 
		 * ROOT.NODE.CNODE:$children   末结点的所有孩子列表 	返回 List<ConfigNode>
		 * ROOT.NODE.CNODE:$value      末结点的TEXT值 			返回 String
		 * ROOT.NODE.CNODE:$node       末结点的结点 			返回 ConfigNode
		 * ROOT.NODE.CNODE:$properties 末结点的属性表(MAP) 		返回 Map<String,String>
		 * 
		 * 每个结点在均支持[]括号内的条件:
		 * ROOT.NODE[name=bb].CNODE[name=ccc]@att1  安条件获取属性值	返回 String
		 * 
		 * @author  tangkf
		 * @param path
		 * @return
		 */
		
		try {
			cb.initinalize();
			
			System.out.println(cb.getRoot());
			
			//--获取 ccc 结点自己 
			ConfigNode obj1	= (ConfigNode)cb.getRoot().getValueByPath("servers.dbserver.ccc:$node");
			
			//--获取ccc 结点的 text 值
			String   obj2	= cb.getRoot().getValueByPath("servers.dbserver.ccc:$value").toString();
			
			//--获取ccc 结点的 attributes 值 
			Map   obj3		= (Map)cb.getRoot().getValueByPath("servers.dbserver.ccc:$properties");
			
			//--获取dbserver 结点的 孩子结点表 List<ConfigNode>
			List  obj4		= (List)cb.getRoot().getValueByPath("servers.dbserver:$children");
			
			//--获取结点 property[name=isdefault] 中name 的值,
			//--当存在多个 property 结点时 取 其属性中 name=isdefault 的结点,当然这个返回值如果存在哪么就是 isdefault
			String  obj5	= cb.getRoot().getValueByPath("servers.dbserver.property[name=isdefault]:name").toString();
			
			System.out.println(obj1+"\r\n"+obj2+"\r\n"+obj3+"\r\n"+obj4+"\r\n"+obj5);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

  db-config.xml 文件内容

<?xml version="1.0" encoding="UTF-8"?>
<servers default="ei_test">
	<dbserver name="ei_test">
		<ccc name="test">hello</ccc>
		<property name="isdefault">true</property>
		<property name="implclass">cn.com.chengjun.dbserver.DefaultDBSImpl</property>
		
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
	</dbserver>
</servers>

 

你可能感兴趣的:(apache,xml,Hibernate,mysql,jdbc)