使用XMLConfiguration解析xml,PropertiesConfiguration解析properties等相应信息
org.apache.commons.configuration.XMLConfiguration;
Apache Common-Configuration工具可以从
Properties文件,XML文件,JNDI,JDBC数据源,System Properties,Applet parameters,Servlet Parameters等读取相应信息
使用步骤
前提,引入commons-configuration-1.6.jar这个JAR包,同时还必须映入commm-logging.jar,common-lang.jar和common-collection.jar

关于对XML的操作代码
- <span style="font-size: medium;"> public static void testReadXML(){
- try {
- XMLConfiguration config = new XMLConfiguration("config.xml");
- // XMLConfiguration config = new XMLConfiguration();
- //config.load("config.xml")
- //对于单独元素的话,可以直接通过标签名获取值
- String str=config.getString("boy");
- System.out.println(str);
- //对于循环出现的嵌套元素,可以通过父元素.子元素来获取集合值
- List<String> names=config.getList("student.name");
- System.out.println(Arrays.toString(names.toArray()));
- //对于一个单独元素包含的值有多个的话如:a,b,c,d 可以通过获取集合
- List<String> titles=config.getList("title");
- System.out.println(Arrays.toString(titles.toArray()));
- //对于标签元素的属性,可以通过 标签名[@属性名] 这样的方式获取
- String size=config.getString("ball[@size]");
- System.out.println(size);
- //对于嵌套的标签的话,想获得某一项的话可以通过 标签名(索引名) 这样方式获取
- String id=config.getString("student(1)[@id]");
- System.out.println(id);
- String go=config.getString("student.name(0)[@go]");
- System.out.println(go);
- /**
- * 依次输出结果为
- * tom
- * [lily, lucy]
- * [abc, cbc, bbc, bbs]
- * 20
- * 2
- * common1
- *
- */
- } catch (ConfigurationException e) {
- e.printStackTrace();
- }
- }</span>
config.xml
- <span style="font-size: medium;"><Students>
- <boy>tom</boy>
- <student id="1">
- <name go="common1">lily</name>
- <age>20</age>
- </student>
- <student id="2">
- <name go="common2">lucy</name>
- <age>30</age>
- </student>
- <title>abc,cbc,bbc,bbs</title>
- <ball size="20">pingpang</ball>
- </Students></span>
关于Properties的操作代码
- <span style="font-size: medium;">public static void testReadProperties(){
- //注意路径默认指向的是classpath的根目录
- Configuration config;
- try {
- config = new PropertiesConfiguration("config.properties");
- String ip=config.getString("ip");
- int port=config.getInt("port");
- String title=config.getString("application.title");
- System.out.println(ip+"\n"+port+"\n"+title);
- //再举个Configuration的比较实用的方法吧,在读取配置文件的时候有可能这个键值对应的值为空,那么在下面这个方法中
- //你就可以为它设置默认值。比如下面这个例子就会在config.properties这个文件中找id的值,如果文件中没有配置id,就会给id设置值为123
- //这样就保证了java的包装类不会返回空值。虽然功能很简单,但是很方便很实用。
- String id=config.getString("id", "defaultid");
- System.out.println(id);
- //如果在properties 文件中有如下属性keys=cn,com,org,uk,edu,jp,hk,这样的类似一个值含有多个元素值
- //那么下面两种方法都可以
- String[] keys1=config.getStringArray("keys");
- System.out.println(Arrays.toString(keys1));
- List keys2=config.getList("keys");
- System.out.println(Arrays.toString(keys2.toArray()));
- //接下来这两步加上的原因是,默认分割符号是逗号,而在配置文件中con的值中含有多个短横线分隔符,所以要重新设置分隔符读出来喽
- AbstractConfiguration.setDefaultListDelimiter('-');
- config = new PropertiesConfiguration("config.properties");
- List cons=config.getList("con");
- System.out.println(Arrays.toString(cons.toArray()));
- /**
- *
- * 依次输出结果如下
- * 127.0.0.1
- * 8080
- * Killer App 1.6.2
- * defaultid
- * [cn, com, org, uk, edu, jp, hk]
- * [cn, com, org, uk, edu, jp, hk]
- * [cn, com, org, uk, edu, jp, hk]
- */
- } catch (ConfigurationException e) {
- e.printStackTrace();
- }
- }</span>
config.properties
- <span style="font-size: medium;">ip=127.0.0.1
- port=8080
- sd=111
- application.name = Killer App
- application.version = 1.6.2
- application.title = ${application.name} ${application.version}
- keys=cn,com,org,uk,edu,jp,hk
- con=cn-com-org-uk-edu-jp-hk </span>
使用XMLConfiguration解析xml,PropertiesConfiguration解析properties等相应信息的更多相关文章
- Java解析XML:Jdom解析和SAX解析
今天看了Java解析XML的几种方法,记录一下 1.Jdom解析 (1)读取XML内容 private static void readXML() { // TODO Auto-generated m ...
- Android 解析XML—pull解析方式
在Android中,常见的XML解析器分别为SAX解析器.DOM解析器和PULL解析器,其中PULL解析器小巧轻便,解析速度快,简单易用,非常适合在Android移动设备中使用,Android系统内部 ...
- xml语法、DTD约束xml、Schema约束xml、DOM解析xml
今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...
- Android网络之数据解析----SAX方式解析XML数据
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- iOS - XML 数据解析
前言 @interface NSXMLParser : NSObject public class NSXMLParser : NSObject 1.XML 数据 XML(Extensible Mar ...
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
[目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...
- 小学生之解析XML应用
1.什么是XML? 解析:XML:Extensible Markup Language(可扩展标记语言) HTML:HyperLink Text Markup Language(超文本标记语言) ...
- JQuery 解析xml
JQuery 可以通过 $.get() 或 $.post() 方法来加载 xml. JQuery 解析 XML 与解析 DOM 一样, 可以使用 find(), children() 等函数来 ...
- 玩转iOS开发 - JSON 和 Xml 数据解析
前言 Json 和xml是网络开发中经常使用的数据格式,JSON轻量级.xml相对较复杂.所以如今用JSON的比例很大.基本上从server获取的返回数据都是JSON格式的,作为iOS开发人员,解析J ...
- 解析Xml四种方法
关键字:Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath [引言] 目前在Java中用于解析XML的技术很多,主流的有DOM.SAX.JDOM.DOM4j,下文 ...
随机推荐
- Ubuntu64位安装Adobe Reader 9.5.5
Aodbe Reader在Linux下的效果比Foxit Reader(福昕阅读器)要好一些,尤其对于中文文档而言.本文介绍Adobe Reader在Ubuntu下的安装,文章<Ubuntu12 ...
- JavaScript学习3:原型和继承
原型 我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个对象,它的用途是包括能够由特定类型的全部实例共享的属性和方法.逻辑上能够这么理解:prototype是通过调用构造函数而创 ...
- PeekMessage究竟做了什么?
1.UI线程 2.工作线程 把Delphi里TThread的WaitFor函数转化成C++代码,就会是下面这个样子. BOOL TThread::WaitFor(HANDLE hThread) { M ...
- COGS1752. [BOI2007]摩基亚Mokia
1752. [BOI2007]摩基亚Mokia ★★☆ 输入文件:mokia.in 输出文件:mokia.out 简单对比时间限制:5 s 内存限制:128 MB [题目描述] 摩尔瓦 ...
- 【CF830C】Bamboo Partition 分块
[CF830C]Bamboo Partition 题解:给你n个数a1,a2...an和k,求最大的d使得$\sum\limits_{i=1}^n((d-a[i] \% d) \% d) \le k$ ...
- Elipse clean后无法编译出class文件
通常之前一直运行正常的项目,在某次修改或重新启动时总是报 ClassNotFoundException,而事实是这个类确实存在,出现这种原因最好看看 build文件下的classes是否为空 或 编译 ...
- JAVA数据类型(转)
java中数据的基本类型分为: 基本数据类型和引用数据类型,对此不多介绍: 接下来讨论一下java中数据类型存储在哪 基本数据类型存储在哪,取决于基本类型在哪声明: 1 ...
- Swift 学习笔记 (初始化)
初始化是为类 结构体 或者枚举准备实例的过程.这个过程需要给实例里的每一个存储属性设置一个初始值并且在新实例可以使用之前执行任何其它所必需的配置或初始化. 初始化器 初始化器在创建特定类型的实例时被调 ...
- Discuz!支持发布视频帖子设定 + 修改后台文件
最近想做一个地方性论坛,果断在阿里巴巴的phpwind论坛程序与腾讯旗下的discuz论坛程序中选择,虽然phpwind大气,后面还是 决定选择了discuz程序用来构建这个平台,经过一番安装后,发现 ...
- STemWin显示汉字 — SD卡外挂XBF字库
转载注明出处 方法来自安福莱教程 1: 使用emWin自带小工具生成字库 (1)启动软件 选择4位抗锯齿 (2)根据需求选择字体类型和字体大小 (3)另存为XBF格式 2: 创建XBF字体 #inc ...