由于每次都要去鼓捣 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>
- 描述: 这个是ConfigNode 包含的方法
- 大小: 25.7 KB
分享到:
相关推荐
在实际项目中,还可以结合ASP.NET框架,将XML配置文件与应用程序配置相结合,利用`System.Configuration`命名空间的类,如`ConfigurationManager`,来简化配置文件的读取和管理。例如,`ConfigurationManager....
在IT行业中,尤其是在软件开发领域,配置文件的读写是一项常见的任务。配置文件通常用于存储应用的设置、参数或特定环境的信息,以便程序在运行时能够动态调整行为。本篇文章将探讨如何通过宏来简化配置文件的处理,...
XML配置文件是一种基于文本的数据存储方式,通过标签和属性来组织和描述数据。这种格式易于阅读和编写,同时也便于程序解析和处理。配置文件通常用于存储应用程序的设置、环境变量或数据库连接信息等,使得这些数据...
总结来说,XMLIniFiles.pas是Delphi环境下针对XML配置文件的一个实用工具,它简化了XML文件的读写操作,让开发者能够像处理.INI文件一样处理XML,同时享受到XML带来的更丰富的数据表示能力。通过使用这个类库,项目...
首先,了解Spring Boot的核心理念是简化Spring应用程序的初始设置,它默认并不支持从XML配置文件加载bean。然而,Spring Boot并没有完全摒弃XML,而是提供了方法让我们在需要时引入XML配置。 1. **启用XML配置支持*...
下面是一个简化的配置文件读取示例,它假设配置文件包含键值对,用等号分隔: ```cpp #include #include #include int main() { std::ifstream configFile("config.ini"); if (!configFile) { std::cerr ...
这些给定的文件名表明它们是Java编程语言中的工具类,用于处理XML配置文件的读取和管理。以下是对这些类可能包含的功能的详细解释: 1. **PortalConfig.java**:这个类可能专门用于处理与门户应用相关的配置信息。...
封装TinyXML的首要步骤是包含其头文件,并创建一个接口,使得用户可以方便地读取XML配置文件。例如,我们可以创建一个名为`XmlConfigManager`的类,其中包含一个静态成员,以实现单例模式。单例模式确保任何时候都...
总之,Spring Boot的多模块配置文件读取策略旨在提高项目的可扩展性和可维护性。通过合理的配置文件组织和使用`@ConfigurationProperties`,我们可以有效地管理各模块的配置,同时保持代码的清晰和整洁。理解并熟练...
### JAVA读取数据库的XML配置文件 #### 前言 在软件开发中,数据库配置信息的管理至关重要。随着技术的发展,出现了许多优秀的框架来帮助开发者处理这些任务,例如Hibernate等ORM(对象关系映射)工具,它们简化了...
这个名为"简洁好用的配置文件读写类-config"的项目,旨在提供一个易于使用且功能强大的配置文件处理工具。它可能是用C++或其他编程语言实现的一个库或类,目标是简化对配置文件的操作,避免用户直接使用复杂或繁琐的...
为了简化这个过程,开发者通常会创建一个自定义的库或者封装一个类,提供更高级别的接口来读写配置文件。这样的类可能包含解析不同格式配置文件的方法,如`parseINI()`, `parseXML()`, `parseJSON()`等,并且提供...
在Spring Boot应用中,我们通常使用YAML或Java配置来管理我们的应用程序设置,但有时我们需要兼容遗留系统或者有特殊需求,需要使用XML配置文件。本文将深入探讨如何在Spring Boot项目中读取不同路径下的`...
例如,一个简单的XML配置文件可能用于定义数据库连接信息: ```xml <host>localhost <port>3306 <username>root <password>password <dbname>testdb ``` 另一方面,属性配置文件(.properties)是Java...