使用XMLConfiguration解析xml,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+"\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.               
  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>  

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288270.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#语法糖系列 —— 第二篇:聊聊 ref,in 修饰符底层玩法

自从 C# 7.3 放开 ref 之后&#xff0c;这玩法就太花哨了&#xff0c;也让 C# 这门语言变得越来越多范式&#xff0c;越来越重&#xff0c;这篇我们就来聊聊 ref&#xff0c;本质上来说 ref 的放开就是把 C/C 指针的那一套又拿回来了&#xff0c;而且还封装成一套自己的玩法&am…

(二)python3 只需3小时带你轻松入门——基本变量

输入 在程序运行过程中&#xff0c;数据从外部流向程序&#xff0c;称为输入。在程序运行过程中&#xff0c;接收用户从键盘上键入值&#xff0c;可以使用input()函数。 input("请输入你要输入的值:")在输入值时&#xff0c;一般是代表接下来的运算需要使用到用户所…

Fiddler之为什么我没有抓到网络请求的js链接

1 问题 我开了Fiddler&#xff0c;没有抓到js的连接请求&#xff0c;因为我需要替换js文件&#xff0c;我以为我是没有开启抓起https的连接&#xff0c;但是的确开启了。 2 原因 浏览器里面有缓存&#xff0c;部分js文件不会再进行请求。 2 解决办法 在浏览器页面按下F12,然…

html5一年四季的变化,家乡四季的变化作文(精选5篇)

家乡四季的变化作文(精选5篇)在日常生活或是工作学习中&#xff0c;大家或多或少都会接触过作文吧&#xff0c;写作文是培养人们的观察力、联想力、想象力、思考力和记忆力的重要手段。那么你有了解过作文吗&#xff1f;下面是小编精心整理的家乡四季的变化作文(精选5篇)&#…

ThinkPHP多次重复提交问题的根源

2019独角兽企业重金招聘Python工程师标准>>> 由于用户刷新网页&#xff0c;导致页面所有变量回归初始空值 $code_session2 session(code2); $code2 I(code2);if($code2 ! $code_session2) {session(code2, $code2);M(dati)->data($data)->add();} 解决方法是…

(一)python3 只需3小时带你轻松入门—— 编程尝试

什么是函数&#xff1f; 在编程中&#xff0c;函数和通常数学中的函数概念并不完全相同&#xff1b;编程中的函数更接近于一个写好的工具&#xff0c;在开发某些功能时&#xff0c;所需要到该函数&#xff0c;就把该函数拿过来使用。 输出/显示 运行python程序时显示指定的文本…

HTTP 笔记与总结(7)HTTP 缓存(配合 Apache 服务器)

在网络上&#xff0c;有一些缓存服务器&#xff0c;另外浏览器自身也有缓存功能。 例如&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title> </head> <body&…

httpcilent绕过证书

2019独角兽企业重金招聘Python工程师标准>>> 对接其他公司接口&#xff0c;测试环境没有问题&#xff0c;生产环境出现https证书认证的问题&#xff0c; 网上搜了许久才发现一个&#xff0c;链接&#xff1a;http://pan.baidu.com/s/1dEDSmY1 密码&#xff1a;dpsb …

(六)python3 只需3小时带你轻松入门——循环

for循环 使用循环可以重复执行某些代码&#xff0c;可以方便程序编写&#xff1b;但是不记效率的使用循环会使程序运行效率降低。 range 使用range()函数可以生成多个连续整数的range对象(这个概念后面会说)。基本格式&#xff1a;range(end)其中end是结尾数。range(10)则会生…

linux下查看mysql的当前连接情况

为什么80%的码农都做不了架构师&#xff1f;>>> 首先需要登录到mysql中。 总共有三个命令&#xff1a; 1、status mysql> status--------------mysql Ver 14.14 Distrib 5.5.30, for Linux (x86_64) using readline 5.1Connection id: 96Current data…

用计算机画图软件画画教程,电脑画图软件有什么使用技巧,电脑画图软件教程...

一、第一步是点击右下角的“开始”图标。在开头上方&#xff0c;出现一个对话框&#xff0c;您找到“所有应用程序”&#xff0c;您右键单击鼠标&#xff0c;在出现的对话框中&#xff0c;您找到“附件”&#xff0c;您左键单击鼠标&#xff0c;在“附件”的右侧出现一个对话框…

(七)python3 只需3小时带你轻松入门——List与dict

List列表 python中最基本的数据结构之一。序列&#xff08;或者说集合&#xff09;中的每个元素都分配一个数字用来表示它的位置&#xff08;索引&#xff09;&#xff0c;第一个索引是0&#xff0c;第二个索引是1&#xff0c;依此类推。 索引 索引最大值不能超过当前对象的最…

龙芯推出兼容IE的龙芯浏览器解决方案,全面支持ActiveX插件等应用类型

近期&#xff0c;龙芯中科推出了兼容IE的浏览器解决方案&#xff0c;可全面支持采用ActiveX插件等IE时代技术开发的网页应用。众所周知&#xff0c;IE浏览器因年代久远&#xff0c;已逐步退出历史舞台。但在我国行业和个人应用中&#xff0c;仍存在着大量基于IE浏览器开发的网页…

DPS软件做MK(Mann-Kendall)突变监测分析方法(附DPS 7.05软件下载地址)

Mann-Kendall是一种非参数统计检验方法&#xff0c;具有样本不遵从某一特定分布&#xff0c;不受个别异常值干扰&#xff0c;能够客观地表征样本序列整体变化趋势等优点。 虽然DPS软件具有强大的统计分析和数据可视化功能&#xff0c;但是相关的示例和教程却本博文演示Mann-Ke…

clientHeight、offsetHeight 和 scrollHeight

2019独角兽企业重金招聘Python工程师标准>>> window.screen.availWidth 返回当前屏幕宽度(空白空间) window.screen.availHeight 返回当前屏幕高度(空白空间) window.screen.width 返回当前屏幕宽度(分辨率值) window.screen.height 返回当前屏幕…

(八)python3 只需3小时带你轻松入门——List 与 dict 的常用操作

List定义 定义:list1 [name,python,sun,dog] list获取:list1[0]->name,list1[3]->sun list修改:list1[0],list1[3]Lihua,run list输出: print(list[0]) 检验代码&#xff1a; list1 [name,python,sun,dog] print(list1获取索引0位置&#xff1a;,list1[0]) list1[0],l…

几何校正,正射校正,影像配准,辐射定标,辐射校正,大气校正,地形校正概念详解

一、几何校正 1、概念 是指消除或改正遥感影像几何误差的过程;

linux之errno值为104(connetction reset by peer)

1 问题 往fd里面写&#xff08;write方法&#xff09;入数据的时候出错&#xff0c;返回小于等于0的值&#xff0c;然后这个时候打印errno值是104 2 分析 errno是104就是connetction reset by peer&#xff0c;表明在对一个对端socket已经关闭的的连接调用write或send方法&am…

python 蓝牙模块pybluz安装

最近项目运用了蓝牙&#xff0c;所以来学一学蓝牙。 经过查阅&#xff0c;知道python的蓝牙模块是pybluz&#xff0c;然后老管理进行安装 出错&#xff0c;提示“Could not find the Windows Platform SDK” 到https://pypi.python.org/pypi/PyBluez 下载码源 查看setup.py 出错…

【ArcGIS风暴】ArcGIS 10.2字段计算器(Field Calculator)批量条件赋值用法总结

前面的文章介绍了栅格计算器的常见公式大全可以参照文章《【ArcGIS风暴】ArcGIS 10.2栅格计算器实用公式大全(经典珍藏版)》。可以看出,栅格计算器的熟练运用的确能解决很多栅格运算的问题。 现在有这么一类典型问题,就是如果需要按不同的条件进行赋值,该怎么做呢?我们是…