`
otom31
  • 浏览: 229716 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

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>

 

  • config4j.jar (9.6 KB)
  • 描述: config4j的JAR包 依赖dom4j
  • 下载次数: 31
  • config4j.rar (17.5 KB)
  • 描述: 这个文件包含源码和DEMO
  • 下载次数: 59
  • 描述: 这个是ConfigNode 包含的方法
  • 大小: 25.7 KB
3
1
分享到:
评论
11 楼 otom31 2008-06-28  
呵呵。。。已经更新到1.1版本了,可以实现结点的增加和文件的保存

确实是,每个项目都有不同的实现,我也是这么做的,不过现在这样做显得更简洁一些。
10 楼 careprad 2008-06-27  
不错
不过这个需求应该是每个项目里面都有自己的实现的
9 楼 spiritfrog 2008-06-26  
不错了,看着挺简单和实用的,代码我下了,以后直接拿来用的。
8 楼 otom31 2008-06-12  
commons-configuration-1.4.jar

这个我用过的,呵呵,apache 的东西是不错,可惜不够简洁!
用起来觉得不爽!不然我也不会些这个东东
7 楼 ralfmmx 2008-06-10  
试试commons-configuration-1.4.jar
6 楼 otom31 2008-06-10  
呵呵,空了,准备把文件的写入保存的功能完善一下~
5 楼 小白·菜 2008-06-05  
感觉不错,支持原创。希望能真的一直维护下去。
等回家试用再给意见。
4 楼 otom31 2008-06-05  
呵呵,重新上传了一个压缩包。。。包含DEMO和源码
3 楼 ldjsyl 2008-06-05  
怎么没有源码呢?
2 楼 otom31 2008-06-05  
恩,没什么区别,但是更简单易用。。
你可以直接用ConfigNode 来取值
1 楼 iday 2008-06-05  
这跟xpath有什么区别么。。。。

相关推荐

    C#读取XML配置文件

    在实际项目中,还可以结合ASP.NET框架,将XML配置文件与应用程序配置相结合,利用`System.Configuration`命名空间的类,如`ConfigurationManager`,来简化配置文件的读取和管理。例如,`ConfigurationManager....

    利用宏简化配置文件读写的类

    在IT行业中,尤其是在软件开发领域,配置文件的读写是一项常见的任务。配置文件通常用于存储应用的设置、参数或特定环境的信息,以便程序在运行时能够动态调整行为。本篇文章将探讨如何通过宏来简化配置文件的处理,...

    配置文件Xml XMl公共类

    XML配置文件是一种基于文本的数据存储方式,通过标签和属性来组织和描述数据。这种格式易于阅读和编写,同时也便于程序解析和处理。配置文件通常用于存储应用程序的设置、环境变量或数据库连接信息等,使得这些数据...

    自己写的delphi下xml文件读写配置类

    总结来说,XMLIniFiles.pas是Delphi环境下针对XML配置文件的一个实用工具,它简化了XML文件的读写操作,让开发者能够像处理.INI文件一样处理XML,同时享受到XML带来的更丰富的数据表示能力。通过使用这个类库,项目...

    Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件1

    首先,了解Spring Boot的核心理念是简化Spring应用程序的初始设置,它默认并不支持从XML配置文件加载bean。然而,Spring Boot并没有完全摒弃XML,而是提供了方法让我们在需要时引入XML配置。 1. **启用XML配置支持*...

    C++配置文件读取

    下面是一个简化的配置文件读取示例,它假设配置文件包含键值对,用等号分隔: ```cpp #include #include #include int main() { std::ifstream configFile("config.ini"); if (!configFile) { std::cerr ...

    xml文件的配置读取工具类

    这些给定的文件名表明它们是Java编程语言中的工具类,用于处理XML配置文件的读取和管理。以下是对这些类可能包含的功能的详细解释: 1. **PortalConfig.java**:这个类可能专门用于处理与门户应用相关的配置信息。...

    使用C++封装tinyxml,读取xml文件

    封装TinyXML的首要步骤是包含其头文件,并创建一个接口,使得用户可以方便地读取XML配置文件。例如,我们可以创建一个名为`XmlConfigManager`的类,其中包含一个静态成员,以实现单例模式。单例模式确保任何时候都...

    Spring Boot多模块配置文件读取

    总之,Spring Boot的多模块配置文件读取策略旨在提高项目的可扩展性和可维护性。通过合理的配置文件组织和使用`@ConfigurationProperties`,我们可以有效地管理各模块的配置,同时保持代码的清晰和整洁。理解并熟练...

    JAVA读取数据库的XML配置文件

    ### JAVA读取数据库的XML配置文件 #### 前言 在软件开发中,数据库配置信息的管理至关重要。随着技术的发展,出现了许多优秀的框架来帮助开发者处理这些任务,例如Hibernate等ORM(对象关系映射)工具,它们简化了...

    简洁好用的配置文件读写类-config

    这个名为"简洁好用的配置文件读写类-config"的项目,旨在提供一个易于使用且功能强大的配置文件处理工具。它可能是用C++或其他编程语言实现的一个库或类,目标是简化对配置文件的操作,避免用户直接使用复杂或繁琐的...

    linux配置文件读写好用的类

    为了简化这个过程,开发者通常会创建一个自定义的库或者封装一个类,提供更高级别的接口来读写配置文件。这样的类可能包含解析不同格式配置文件的方法,如`parseINI()`, `parseXML()`, `parseJSON()`等,并且提供...

    Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件4

    在Spring Boot应用中,我们通常使用YAML或Java配置来管理我们的应用程序设置,但有时我们需要兼容遗留系统或者有特殊需求,需要使用XML配置文件。本文将深入探讨如何在Spring Boot项目中读取不同路径下的`...

    easconfig 配置文件读写

    例如,一个简单的XML配置文件可能用于定义数据库连接信息: ```xml &lt;host&gt;localhost &lt;port&gt;3306 &lt;username&gt;root &lt;password&gt;password &lt;dbname&gt;testdb ``` 另一方面,属性配置文件(.properties)是Java...

Global site tag (gtag.js) - Google Analytics