使用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,一经查实,立即删除!

相关文章

[家里蹲大学数学杂志]第405期中国科学院数学与系统科学研究院2015年夏令营分析与代数试题...

该试卷分两部分: 分析 $5$ 题 (共 $50$ 分), 代数 $5$ 题 (共 $50$ 分). 考试时间: $120$ 分钟 1. ($10$) 对哪些实数 $\al$, 级数 $\dps{\vsm{n}\sex{\frac{1}{n}-\sin \frac{1}{n}}^\al}$ 收敛? 2. ($6$) 设 $y$ 是 $[0,1]$ 上 $C^1$ 光滑实函数, 满足方程 $$\bex y(x)y(x)-…

html文本框整数范围,验证HTML表单文本框中的数值范围。 PHP或Javascript

重要的是要提的&#xff0c;你的$卷&#xff0c;$增益&#xff0c;$高音&#xff0c;$中&#xff0c;$低音永远实际上是空的&#xff0c;因为除了$ _POST值之外&#xff0c;你还为它们分配了一个字符串。另外&#xff0c;在尝试使用它们之前&#xff0c;您应该始终检查$ _POST值…

SVN之如何添加默认.a文件

1 问题 SVN之如何添加默认.a文件 2 解决办法 我们安装了tortoiseSVN&#xff0c;点击鼠标右键&#xff0c;然后点解Settings,然后点击按钮 “edit”,然后会打开一个conf文件 我们找到[auto-props]&#xff0c;然后在[auto-props]上面添加 global-ignores *.o *.lo *.la *.…

ASP.NET MVC入门---实例演示:通过ContentResult实现主题定制

实例演示:通过ContentResult实现主题定制 由于可以通过ContentResult的ContentType属性指定媒体类型,所以我们不仅仅可以利用它来返回最终会在浏览器中显示的文本,还可以返回其他一些类型的文本内容,比如JavaScript脚本(“text/javascript”)和CSS样式(“text/css”)等…

[ActionScript 3.0] 安全沙箱的类型sandboxType,判断当前程序是AIR还是web程序

表示其中正在运行执行调用的 文件的安全沙箱的类型。 Security.sandboxType 具有下列值之一&#xff1a; remote (Security.REMOTE)&#xff1a;此文件来自 Internet URL&#xff0c;并在基于域的沙箱规则下运行。localWithFile (Security.LOCAL_WITH_FILE)&#xff1a;此文件是…

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

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

python发邮件脚本详解_Python发送邮件脚本

在一些场景中经常需要发送邮件, 像是持续集成和运维报警等. 而使用Python脚本能够很快捷方便得实现发送各种邮件的需求.这里就通过Python基于SMTP(Simple Mail Transfer Protocol)实现一套可以群发,Html内容和附件的脚本。既然是要发送各种类型的邮件, 首先需要有一个邮箱.这里…

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

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

最好的车

最好的车 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 18 Accepted Submission(s) : 6 Problem Description H城是一个旅游胜地。每年都有成千上万的人前来观光。为方便游客。巴士公司在各个旅游景点及宾馆、…

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

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

Asp.net MVC 中Controller返回值类型ActionResult

目录 1、返回ViewResult视图结果,将视图呈现给网页 2、 返回PartialViewResult部分视图结果,主要用于返回部分视图内容,在View/Shared目录下创建ViewUserControl.cshtml部分视图

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();} 解决方法是…

基于.NetCore开发博客项目 StarBlog - (4) markdown博客批量导入

系列文章基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客&#xff1f;基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目基于.NetCore开发博客项目 StarBlog - (3) 模型设计基于.NetCore开发博客项目 StarBlog - (4) markdown博客批量导入...前言…

(一)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&…

linux之dos2unix命令解决vi打开文件行尾巴显示^M

1 问题 有时候我们用vi打开文件,行尾巴显示^M,我之前也不知道这个是为什么,后面才了解到,DOS格式的文本文件在Linux平台,用较低版本的vi打开文件行尾会显示^M,DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,…

bootstrap 一排5个_Bootstrap5 列(Columns)

对其使用flexbox对齐工具来垂直和水平对齐列。垂直对齐One of three columnsOne of three columnsOne of three columnsOne of three columnsOne of three columnsOne of three columnsOne of three columnsOne of three columnsOne of three columnsOne of three columnsOne o…

ASP.NET MVC下的四种验证编程方式

ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表,但是在真正执行目标Action方法之前,还需要对绑定的参数实施验证以确保其有效性,我们将针对参数的验证成为Model绑定。总地来说,我们可以采用4种不同的编程模式来进行针对绑定参数的验证。 目录 一、手工验证绑…

台式计算机idc数据排名,IDC数据出炉 海尔电脑排名持续上升

2011年上半年&#xff0c;国内PC产品呈现缓慢增长态势。近期IDC公布了第二季度最新排名&#xff0c;数据显示&#xff0c;海尔电脑消费类台式机在华北市场持续增长&#xff0c;连续两个季度再度排名亚军。华南市场同样取得了好成绩&#xff0c;台式机由第四上升至第三&#xff…