使用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的操作代码
- <span style="font-size: medium;"> public static void testReadXML(){
- try {
- XMLConfiguration config = new XMLConfiguration("config.xml");
- // XMLConfiguration config = new XMLConfiguration();
- //config.load("config.xml")
- //对于单独元素的话,可以直接通过标签名获取值
- String str=config.getString("boy");
- System.out.println(str);
- //对于循环出现的嵌套元素,可以通过父元素.子元素来获取集合值
- List<String> names=config.getList("student.name");
- System.out.println(Arrays.toString(names.toArray()));
- //对于一个单独元素包含的值有多个的话如:a,b,c,d 可以通过获取集合
- List<String> titles=config.getList("title");
- System.out.println(Arrays.toString(titles.toArray()));
- //对于标签元素的属性,可以通过 标签名[@属性名] 这样的方式获取
- String size=config.getString("ball[@size]");
- System.out.println(size);
- //对于嵌套的标签的话,想获得某一项的话可以通过 标签名(索引名) 这样方式获取
- String id=config.getString("student(1)[@id]");
- System.out.println(id);
- String go=config.getString("student.name(0)[@go]");
- System.out.println(go);
- /**
- * 依次输出结果为
- * tom
- * [lily, lucy]
- * [abc, cbc, bbc, bbs]
- * 20
- * 2
- * common1
- *
- */
- } catch (ConfigurationException e) {
- e.printStackTrace();
- }
- }</span>
config.xml
- <span style="font-size: medium;"><Students>
- <boy>tom</boy>
- <student id="1">
- <name go="common1">lily</name>
- <age>20</age>
- </student>
- <student id="2">
- <name go="common2">lucy</name>
- <age>30</age>
- </student>
- <title>abc,cbc,bbc,bbs</title>
- <ball size="20">pingpang</ball>
- </Students></span>
关于Properties的操作代码
- <span style="font-size: medium;">public static void testReadProperties(){
- //注意路径默认指向的是classpath的根目录
- Configuration config;
- try {
- config = new PropertiesConfiguration("config.properties");
- String ip=config.getString("ip");
- int port=config.getInt("port");
- String title=config.getString("application.title");
- System.out.println(ip+"\n"+port+"\n"+title);
- //再举个Configuration的比较实用的方法吧,在读取配置文件的时候有可能这个键值对应的值为空,那么在下面这个方法中
- //你就可以为它设置默认值。比如下面这个例子就会在config.properties这个文件中找id的值,如果文件中没有配置id,就会给id设置值为123
- //这样就保证了java的包装类不会返回空值。虽然功能很简单,但是很方便很实用。
- String id=config.getString("id", "defaultid");
- System.out.println(id);
- //如果在properties 文件中有如下属性keys=cn,com,org,uk,edu,jp,hk,这样的类似一个值含有多个元素值
- //那么下面两种方法都可以
- String[] keys1=config.getStringArray("keys");
- System.out.println(Arrays.toString(keys1));
- List keys2=config.getList("keys");
- System.out.println(Arrays.toString(keys2.toArray()));
- //接下来这两步加上的原因是,默认分割符号是逗号,而在配置文件中con的值中含有多个短横线分隔符,所以要重新设置分隔符读出来喽
- AbstractConfiguration.setDefaultListDelimiter('-');
- config = new PropertiesConfiguration("config.properties");
- List cons=config.getList("con");
- System.out.println(Arrays.toString(cons.toArray()));
- /**
- *
- * 依次输出结果如下
- * 127.0.0.1
- * 8080
- * Killer App 1.6.2
- * defaultid
- * [cn, com, org, uk, edu, jp, hk]
- * [cn, com, org, uk, edu, jp, hk]
- * [cn, com, org, uk, edu, jp, hk]
- */
- } catch (ConfigurationException e) {
- e.printStackTrace();
- }
- }</span>
config.properties
- <span style="font-size: medium;">ip=127.0.0.1
- port=8080
- sd=111
- application.name = Killer App
- application.version = 1.6.2
- application.title = ${application.name} ${application.version}
- keys=cn,com,org,uk,edu,jp,hk
- con=cn-com-org-uk-edu-jp-hk </span>
使用XMLConfiguration解析xml,properties等相应信息相关推荐
- Properties类 解析xml文件问题
使用Properties类的loadFromXml解析xml 报Document root element "student", must match DOCTYPE root & ...
- SAX解析XML文件
就目前来说,有三种方式可以解析XML文件:DOM.SAX.StAX.DOM将整个XML文件加载到内存中,并构建出节点树:应用程序可以通过遍历节点树的方式来解析XML文件中的各个节点.属性等信息:这种方 ...
- 解析xml数据存入bean映射到数据库的 需求解决过程
解析xml数据存入bean映射到数据库的 需求解决过程 2017年12月19日 15:18:57 守望dfdfdf 阅读数:419 标签: xmlbean 更多 个人分类: 工作 问题 编辑 版权声明 ...
- libxml -- 解析 XML 文档
参考 http://xmlsoft.org/ http://www.miidoo.cn/info_detail-204.html http://www.blogjava.net/wxb_nudt/ar ...
- libxml解析xml文件的一些总结
libxml -- 解析 XML 文档 XML 介绍:XML 和 DOM libxml 介绍 数据类型 - xmlChar数据结构 创建 XML 文档解析 XML 文档修改 xml 文档 Xpath ...
- Java 解析 XML
Java 解析 XML 标签: Java基础 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象 优点 ...
- 使用DOM4J解析XML及采用Schema校验的方法
使用DOM4J解析XML及采用Schema校验的方法 Validation Currently dom4j does not come with a validation engine. You ar ...
- Android中使用SAX方式解析XML文件
转载http://blog.csdn.net/cjjky/article/details/6666834 在Android中解析XML文主要有三种方式,分别为Simple API for XML(SA ...
- java:AXIS调用webService接口,返回String类型xml,并用dom4j简单解析xml
一.使用axis调用webService接口,返回String类型xml 1.导入axis依赖 2.直接贴代码 /*** 调用webservice接口的方法,并返回String类型的xml* @par ...
最新文章
- 十二、八皇后问题(递归回溯)
- char和unsigned char
- codeforces 1029 A. Many Equal Substrings
- CTFshow 命令执行 web73
- iOS 获取手机信息
- lombok工具中@Data注解问题
- 排序算法之 Heap Sort
- 敢不敢做一个复杂的人
- Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined)
- 根据数据库名称glkf查看使用的用户
- 删改数据如何避免锁表?等等,啥是锁呀
- 工业机器人电路图讲解话术_智能对话机器人系统及其实现智能对话的方法与流程...
- linux服务器上的cad病毒,LibreCAD_LibreCAD下载[2021官方最新版]LibreCAD安全下载_
极速下载...
- Selenium 官网打不开怎么办?
- 一招教你电脑微信双开
- 四波混频 matlab,四波混频(four-wave mixing)
- 【项目10】python+flask搭建CNN在线识别手写中文网站
- 小米电视屏蔽开机广告的方法
- 春考计算机组装维修知识点,山东春考计算机组装及维修模拟题.docx
- 编程道路上的困难—怎么克服?
热门文章
- @TableLogic注解表示逻辑删除
- django框架中表单
- 书籍排版学习心得_为什么排版是您可以学习的最佳技能
- 什么是云计算?云计算学习基础
- Html中如何让超链接a、图片img居中
- javax.jdo.option.ConnectionURL配置的问题
- Android USB Host与HID通讯(二)
- mikrotikROS系统的几种安装方法
- 《信息存储与管理》读书笔记7 存储虚拟化
- 【转】Android编程点滴(14) -- Android中资源文件夹res/raw和assets的使用