使用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,下文 ...
 
随机推荐
- Portal实现原理
			
https://blog.csdn.net/sukyle/article/details/6456930
 - mac os x升级MOUNTAIN LION后svn command not found的解决
			
因为svn是个开发工具 所以苹果把他移到 Xcode developer package 里 去了,所以你没装xcode之类的,先去AppStore把xcode装了 装好之后sudo vi /et ...
 - Android-彻底地理解Binder
			
转自:https://blog.csdn.net/huachao1001 https://blog.csdn.net/huachao1001/article/details/51504469 你是不是 ...
 - python 基础 7.2  时间格式的相互转换
			
#/usr/bin/python #coding=utf-8 #@Time :2017/11/9 8:55 #@Auther :liuzhenchuan #@File :时间格式的相互转换.p ...
 - 【BZOJ4238】电压 DFS树
			
[BZOJ4238]电压 Description 你知道Just Odd Inventions社吗?这个公司的业务是“只不过是奇妙的发明(Just Odd Inventions)”.这里简称为JOI社 ...
 - Python --- Scrapy 命令(转)
			
Scrapy 命令 分为两种: 全局命令 和 项目命令 . 全局命令:在哪里都能使用. 项目命令:必须在爬虫项目里面才能使用. 全局命令 C:\Users\AOBO>scrapy -h Scra ...
 - 【题解】 AT2134 Zigzag MST
			
[题解]AT2134 Zigzag MST 一道MST好题 \(Anson\)有云: 要么是减少边的数量. 要么是改变连接边的方式. 那么如何减少边的数量呢?很简单,把所有不可能对答案产生贡献的边去掉 ...
 - 用c++后缀自动机实现最大公共字符串算法,并封装成Python库
			
后缀自动机的C++代码转自https://e-maxx.ru/algo/suffix_automata,其余封装为自写. 在C++文件同级目录建立setup.py文件,代码如下: # !/usr/bi ...
 - Ruby 文件 FILE
			
FileUtils.makedirs(LOCAL_DIR) unless File.exists?LOCAL_DIR require 'fileutils' Dir.mkdir(DATA_DIR) u ...
 - leetcode 890. Possible Bipartition
			
Given a set of N people (numbered 1, 2, ..., N), we would like to split everyone into two groups of ...