使用XMLConfiguration解析xml,properties等相应信息

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: org.apache.commons.configuration.XMLConfiguration; Apache Common-Configuration工具可以从Properties文件,XML文件,JNDI,JDBC数据源,System Properties,Applet paramet...

 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>  

 

目录
相关文章
|
13天前
|
自然语言处理 数据可视化 前端开发
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
合合信息的智能文档处理“百宝箱”涵盖文档解析、向量化模型、测评工具等,解决了复杂文档解析、大模型问答幻觉、文档解析效果评估、知识库搭建、多语言文档翻译等问题。通过可视化解析工具 TextIn ParseX、向量化模型 acge-embedding 和文档解析测评工具 markdown_tester,百宝箱提升了文档处理的效率和精确度,适用于多种文档格式和语言环境,助力企业实现高效的信息管理和业务支持。
3933 2
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
|
29天前
|
机器学习/深度学习 自然语言处理 JavaScript
信息论、机器学习的核心概念:熵、KL散度、JS散度和Renyi散度的深度解析及应用
在信息论、机器学习和统计学领域中,KL散度(Kullback-Leibler散度)是量化概率分布差异的关键概念。本文深入探讨了KL散度及其相关概念,包括Jensen-Shannon散度和Renyi散度。KL散度用于衡量两个概率分布之间的差异,而Jensen-Shannon散度则提供了一种对称的度量方式。Renyi散度通过可调参数α,提供了更灵活的散度度量。这些概念不仅在理论研究中至关重要,在实际应用中也广泛用于数据压缩、变分自编码器、强化学习等领域。通过分析电子商务中的数据漂移实例,展示了这些散度指标在捕捉数据分布变化方面的独特优势,为企业提供了数据驱动的决策支持。
49 2
信息论、机器学习的核心概念:熵、KL散度、JS散度和Renyi散度的深度解析及应用
|
21天前
|
人工智能 前端开发 JavaScript
拿下奇怪的前端报错(一):报错信息是一个看不懂的数字数组Buffer(475) [Uint8Array],让AI大模型帮忙解析
本文介绍了前端开发中遇到的奇怪报错问题,特别是当错误信息不明确时的处理方法。作者分享了自己通过还原代码、试错等方式解决问题的经验,并以一个Vue3+TypeScript项目的构建失败为例,详细解析了如何从错误信息中定位问题,最终通过解读错误信息中的ASCII码找到了具体的错误文件。文章强调了基础知识的重要性,并鼓励读者遇到类似问题时不要慌张,耐心分析。
|
25天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
26天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
28天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
1月前
|
存储 编译器 C++
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
|
27天前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
75 0
|
1月前
|
存储 缓存 并行计算
yolov5的train.py的参数信息解析
这篇文章解析了YOLOv5的`train.py`脚本中的参数信息,详细介绍了每个参数的功能和默认值,包括权重路径、模型配置、数据源、超参数、训练轮数、批量大小、图像尺寸、训练选项、设备选择、优化器设置等,以便用户可以根据需要自定义训练过程。
28 0
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器

推荐镜像

更多