使用XMLConfiguration解析xml,properties等相应信息
2017-08-23 18:31
393 查看
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的操作代码
Java代码
<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
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的操作代码
Java代码
<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
Java代码
<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>
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的操作代码
Java代码
<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
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的操作代码
Java代码
<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
Java代码
<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>
相关文章推荐
- 使用XmlDocument将dropdownlist中显示的书名的其它信息读入到相应的文本框中
- iPhone开发【十九】XML解析之NSXMLParser(使用Web Services查询火车信息)
- 使用XmlDocument将dropdownlist中显示的书名的其它信息读入到相应的文本框中。添加 :删除按钮,修改并保存按钮 和 添加按钮。完成这些按钮所对应的功能(XmlDocument)
- iPhone开发【十九】XML解析之NSXMLParser(使用Web Services查询火车信息)
- Android使用XmlPullParser解析XML以及天气预报信息api使用
- Android-通过网络获取xml文件使用pull解析得到服务器中的信息(新闻客户端)
- 使用XmlDocument将dropdownlist中显示的书名的其它信息读入到相应的文本框中。
- 使用XmlDocument将dropdownlist中显示的书名的其它信息读入到相应的文本框中
- 5使用XmlDocument将dropdownlist中显示的书名的其它信息读入到相应的文本框中。
- iPhone开发【十九】XML解析之NSXMLParser(使用Web Services查询火车信息)
- 使用XmlDocument将dropdownlist中显示的书名的其它信息读入到相应的文本框中
- VC解析XML--使用CMarkup类解析XML
- 使用Digester解析XML文件和JAVA对象的映射
- 使用 dom4j 解析 XML(转),xml这个就OK了
- 使用PHP DOM-XML创建和解析XML文件
- using libxml2连载(2 使用简介与xml tree的生成解析)
- 使用 dom4j 解析 XML
- 远程抓取页面信息并解析XML
- 使用digester 解析xml配置文件
- 使用 dom4j 解析 XML