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的操作代码

  1. <span style="font-size: medium;">   public static void testReadXML(){
  2. try {
  3. XMLConfiguration    config = new XMLConfiguration("config.xml");
  4. // XMLConfiguration    config = new XMLConfiguration();
  5. //config.load("config.xml")
  6. //对于单独元素的话,可以直接通过标签名获取值
  7. String str=config.getString("boy");
  8. System.out.println(str);
  9. //对于循环出现的嵌套元素,可以通过父元素.子元素来获取集合值
  10. List<String> names=config.getList("student.name");
  11. System.out.println(Arrays.toString(names.toArray()));
  12. //对于一个单独元素包含的值有多个的话如:a,b,c,d 可以通过获取集合
  13. List<String> titles=config.getList("title");
  14. System.out.println(Arrays.toString(titles.toArray()));
  15. //对于标签元素的属性,可以通过 标签名[@属性名] 这样的方式获取
  16. String size=config.getString("ball[@size]");
  17. System.out.println(size);
  18. //对于嵌套的标签的话,想获得某一项的话可以通过 标签名(索引名) 这样方式获取
  19. String id=config.getString("student(1)[@id]");
  20. System.out.println(id);
  21. String go=config.getString("student.name(0)[@go]");
  22. System.out.println(go);
  23. /**
  24. * 依次输出结果为
  25. * tom
  26. * [lily, lucy]
  27. * [abc, cbc, bbc, bbs]
  28. * 20
  29. * 2
  30. * common1
  31. *
  32. */
  33. } catch (ConfigurationException e) {
  34. e.printStackTrace();
  35. }
  36. }</span>

config.xml

  1. <span style="font-size: medium;"><Students>
  2. <boy>tom</boy>
  3. <student id="1">
  4. <name go="common1">lily</name>
  5. <age>20</age>
  6. </student>
  7. <student id="2">
  8. <name go="common2">lucy</name>
  9. <age>30</age>
  10. </student>
  11. <title>abc,cbc,bbc,bbs</title>
  12. <ball size="20">pingpang</ball>
  13. </Students></span>

关于Properties的操作代码

  1. <span style="font-size: medium;">public static void testReadProperties(){
  2. //注意路径默认指向的是classpath的根目录
  3. Configuration config;
  4. try {
  5. config = new PropertiesConfiguration("config.properties");
  6. String ip=config.getString("ip");
  7. int port=config.getInt("port");
  8. String title=config.getString("application.title");
  9. System.out.println(ip+"\n"+port+"\n"+title);
  10. //再举个Configuration的比较实用的方法吧,在读取配置文件的时候有可能这个键值对应的值为空,那么在下面这个方法中
  11. //你就可以为它设置默认值。比如下面这个例子就会在config.properties这个文件中找id的值,如果文件中没有配置id,就会给id设置值为123
  12. //这样就保证了java的包装类不会返回空值。虽然功能很简单,但是很方便很实用。
  13. String id=config.getString("id", "defaultid");
  14. System.out.println(id);
  15. //如果在properties 文件中有如下属性keys=cn,com,org,uk,edu,jp,hk,这样的类似一个值含有多个元素值
  16. //那么下面两种方法都可以
  17. String[] keys1=config.getStringArray("keys");
  18. System.out.println(Arrays.toString(keys1));
  19. List keys2=config.getList("keys");
  20. System.out.println(Arrays.toString(keys2.toArray()));
  21. //接下来这两步加上的原因是,默认分割符号是逗号,而在配置文件中con的值中含有多个短横线分隔符,所以要重新设置分隔符读出来喽
  22. AbstractConfiguration.setDefaultListDelimiter('-');
  23. config = new PropertiesConfiguration("config.properties");
  24. List cons=config.getList("con");
  25. System.out.println(Arrays.toString(cons.toArray()));
  26. /**
  27. *
  28. *  依次输出结果如下
  29. *  127.0.0.1
  30. *  8080
  31. *  Killer App 1.6.2
  32. *  defaultid
  33. *  [cn, com, org, uk, edu, jp, hk]
  34. *  [cn, com, org, uk, edu, jp, hk]
  35. *  [cn, com, org, uk, edu, jp, hk]
  36. */
  37. } catch (ConfigurationException e) {
  38. e.printStackTrace();
  39. }
  40. }</span>

config.properties

    1. <span style="font-size: medium;">ip=127.0.0.1
    2. port=8080
    3. sd=111
    4. application.name = Killer App
    5. application.version = 1.6.2
    6. application.title = ${application.name} ${application.version}
    7. keys=cn,com,org,uk,edu,jp,hk
    8. con=cn-com-org-uk-edu-jp-hk  </span>

使用XMLConfiguration解析xml,PropertiesConfiguration解析properties等相应信息的更多相关文章

  1. Java解析XML:Jdom解析和SAX解析

    今天看了Java解析XML的几种方法,记录一下 1.Jdom解析 (1)读取XML内容 private static void readXML() { // TODO Auto-generated m ...

  2. Android 解析XML—pull解析方式

    在Android中,常见的XML解析器分别为SAX解析器.DOM解析器和PULL解析器,其中PULL解析器小巧轻便,解析速度快,简单易用,非常适合在Android移动设备中使用,Android系统内部 ...

  3. 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 ...

  4. Android网络之数据解析----SAX方式解析XML数据

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  5. iOS - XML 数据解析

    前言 @interface NSXMLParser : NSObject public class NSXMLParser : NSObject 1.XML 数据 XML(Extensible Mar ...

  6. Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)

    [目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...

  7. 小学生之解析XML应用

    1.什么是XML? 解析:XML:Extensible Markup Language(可扩展标记语言) HTML:HyperLink Text  Markup Language(超文本标记语言)   ...

  8. JQuery 解析xml

    JQuery 可以通过 $.get() 或 $.post() 方法来加载 xml.     JQuery 解析 XML 与解析 DOM 一样, 可以使用 find(), children() 等函数来 ...

  9. 玩转iOS开发 - JSON 和 Xml 数据解析

    前言 Json 和xml是网络开发中经常使用的数据格式,JSON轻量级.xml相对较复杂.所以如今用JSON的比例很大.基本上从server获取的返回数据都是JSON格式的,作为iOS开发人员,解析J ...

  10. 解析Xml四种方法

    关键字:Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath [引言] 目前在Java中用于解析XML的技术很多,主流的有DOM.SAX.JDOM.DOM4j,下文 ...

随机推荐

  1. python 基础 9.3 mysql 数据操作

    #/usr/bin/python #coding=utf-8 #@Time   :2017/11/21 0:20 #@Auther :liuzhenchuan #@File   :mysql 数据操作 ...

  2. 九度OJ 1020:最小长方形 (基础题)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6019 解决:2849 题目描述:     给定一系列2维平面点的坐标(x, y),其中x和y均为整数,要求用一个最小的长方形框将所有点框在 ...

  3. 我的Android进阶之旅------>对Java中注释/**@hide*/的初步认识

    今天写一个调节系统背光亮度的时候,参考了Android中的Setting源码,在源码中有这么一段代码: private static final int MAXIMUM_BACKLIGHT = and ...

  4. [异步][jms][activeMq]怎样做到重试机制不会导致一条消息被多次运行.

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/fei33423/article/details/32723571 淘宝海量存储之单机事务面临的问题及 ...

  5. PYTHON调用C接口(基于Ctypes)实现stein算法最大公约数的计算

    相关环境配置 mingw,选择相应的32位.64位的版本,主要用于编译动态链接库dll文件,可用vs替代,这里我选择轻量级的mingw windows64位地址:https://sourceforge ...

  6. 20145239杜文超 《Java程序设计》第8周学习总结

    20145239 <Java程序设计>第8周学习总结 教材学习内容总结 通用API 日志API 1.java.util.logging包提供了日志功能相关类与接口,使用日志的起点是logg ...

  7. LightOJ - 1287 Where to Run —— 期望、状压DP

    题目链接:https://vjudge.net/problem/LightOJ-1287 1287 - Where to Run    PDF (English) Statistics Forum T ...

  8. 一、为什么要学习Java虚拟机?

    一.为什么要学习Java虚拟机?       这里我们使用举例来说明为什么要学习Java虚拟机,其实这个问题就和为什么要学习数据结构和算法是一个道理,工欲善其事,必先利其器.曾经的我经常害怕处理内存溢 ...

  9. vs2015professional过期后登录微软账户仍然不能使用的解决方法

    今天安装了vs2015pro版,找到了一个可以正常使用的密钥 2015 pro(专业版)key:HMGNV-WCYXV-X7G9W-YCX63-B98R2 注意是专业版,非企业版 来源:https:/ ...

  10. 存储过程IF --ELSE IF -- END IF 使用

    CREATE OR REPLACE PROCEDURE BJPJYXK_HF_SD( sqid_p IN VARCHAR2,--申请单ID xkbh_p IN VARCHAR2,--新生成的许可证编号 ...