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. Android OOM解决方案 :

    清单文件里 给Application标签加上android:largeHeap="true"这行代码   这样会给你的app分配一个大内存   如果某个页面在绘制时会耗非常多的内存 ...

  2. Html控件和Web控件(转)

    作为一名ASP.NET的初学者,了解并且区别一些混淆概念是很必须的,今天这篇博文 就是主要向大家介绍一下Html控件和Web控件.在ASP.net中,用户界面控件主要就是 Html控件和Web控件,在 ...

  3. The connection between feature spaces and smoothness is not obvious, and is one of the things we’ll discuss in the course.

    http://www.gatsby.ucl.ac.uk/~gretton/coursefiles/lecture4_introToRKHS.pdf

  4. Linux RabbitMQ的安装、环境配置、远程访问 , Windows 下安装的RabbitMQ远程访问

    Linux  RabbitMQ的安装和环境配置 1.安装 RabbitMQ是使用Erlang语言编写的,所以安装RabbitMQ之前,先要安装Erlang环境 #对原来的yum官方源做个备份 1.mv ...

  5. Hadoop实战-Flume之自定义Sink(十九)

    import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...

  6. Java使用到的常用类总结

    基本类型 常用:int.long.double.boolean. 不常用:byte.float.char.short

  7. 第一个Vert.x程序

    Jar依赖 <dependency> <groupId>io.vertx</groupId> <artifactId>vertx-core</ar ...

  8. TCP服务器端和客户端程序设计【转】

    本文转载自:http://blog.csdn.net/yueguanghaidao/article/details/7035248# 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.实验目的 ...

  9. Centos虚拟机克隆后的ip配置

    1. rm -rf /etc/udev/rules.d/-persistent-net.rules 2. 重启,然后: vi /etc/udev/rules.d/70-persistent-net.r ...

  10. 关于MVC模板渲染的一点小事type="text/template"

    先上一个demo,简单粗暴,请自便 <!DOCTYPE html> <html> <head lang="en"> <meta chars ...