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

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

       config.xml

       

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

    Java代码  收藏代码
    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+" "+port+" "+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.               
    16.             //如果在properties 文件中有如下属性keys=cn,com,org,uk,edu,jp,hk,这样的类似一个值含有多个元素值     
    17.             //那么下面两种方法都可以  
    18.             String[] keys1=config.getStringArray("keys");   
    19.             System.out.println(Arrays.toString(keys1));  
    20.             List keys2=config.getList("keys");    
    21.             System.out.println(Arrays.toString(keys2.toArray()));  
    22.             //接下来这两步加上的原因是,默认分割符号是逗号,而在配置文件中con的值中含有多个短横线分隔符,所以要重新设置分隔符读出来喽  
    23.             AbstractConfiguration.setDefaultListDelimiter('-');  
    24.             config = new PropertiesConfiguration("config.properties");  
    25.             List cons=config.getList("con");    
    26.             System.out.println(Arrays.toString(cons.toArray()));  
    27.             /** 
    28.              *  
    29.              *  依次输出结果如下 
    30.              *  127.0.0.1 
    31.              *  8080 
    32.              *  Killer App 1.6.2 
    33.              *  defaultid 
    34.              *  [cn, com, org, uk, edu, jp, hk] 
    35.              *  [cn, com, org, uk, edu, jp, hk] 
    36.              *  [cn, com, org, uk, edu, jp, hk] 
    37.              */  
    38.         } catch (ConfigurationException e) {  
    39.             e.printStackTrace();  
    40.         }     
    41.           
    42.     }</span>  

     config.properties

    Java代码  收藏代码
      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>  
  • 相关阅读:
    DNT论坛整合笔记二
    LINQ中的动态排序
    无法安装数据库关系图支持对象的解决方法
    总访问量,日访问量,周访问量统计代码
    ASP.NET 数据绑定控件和 Eval方法
    KindEditor ASP.NET 上传/浏览服务器 附源码
    地图定位 图吧地图定位 附javascript源码每行都有注释
    java.io.IOException: Unable to open sync connection!
    Canvas和Paint实例
    Android初级教程_获取Android控件的宽和高
  • 原文地址:https://www.cnblogs.com/keyi/p/7419586.html
Copyright © 2020-2023  润新知