打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Apache Commons-configuration 学习笔记3
     读取XML
假如有个XML,名叫:XMLtest.xml如下:
Java代码  
  1. <?xml version="1.0" encoding="ISO-8859-1" ?>  
  2. <gui-definition>  
  3.   <colors>  
  4.     <background>#808080</background>  
  5.     <text>#000000</text>  
  6.     <header>#008000</header>  
  7.     <link normal="#000080" visited="#800080"/>  
  8.     <default>${colors.header}</default>  
  9.   </colors>  
  10.   <rowsPerPage>15</rowsPerPage>  
  11.   <buttons>  
  12.     <name>OK,Cancel,Help</name>  
  13.     <name>Yes,No,Cancel</name>  
  14.   </buttons>  
  15.   <numberFormat pattern="###\,###.##"/>  
  16. </gui-definition>   

标准的XML文件都会有一个跟标签包裹住所有内容,这个标签的子标签认为是顶级名字空间
(这个说法可能不准确)不多说了看代码吧
Java代码  
  1. XMLConfiguration config = new XMLConfiguration("XMLtest.xml");  
  2. /** 
  3.     *<colors> 
  4.   *  <background>#808080</background> 
  5.   *  <text>#000000</text> 
  6.   *  <header>#008000</header> 
  7.   *  <link normal="#000080" visited="#800080"/> 
  8.   *  <default>${colors.header}</default> 
  9.   *</colors> 
  10.     *这是从上面的xml中摘抄的一段,我们现在来解析它, 
  11.     *colors是根标签下的直接子标签,所以是顶级名字空间 
  12.     */  
  13. String backColor = config.getString("colors.background");  
  14. String textColor = config.getString("colors.text");  
  15. //现在我们知道了如何读取标签下的数据,那么如何读标签中的属性呢?看下面  
  16. //<link normal="#000080" visited="#800080"/>  
  17. String linkNormal = config.getString("colors.link[@normal]");  
  18. //还支持引用呢!  
  19. //<default>${colors.header}</default>  
  20. String defColor = config.getString("colors.default");  
  21. //也支持其他类型,但是一定要确定类型正确,否则要报异常哦  
  22. //<rowsPerPage>15</rowsPerPage>  
  23. int rowsPerPage = config.getInt("rowsPerPage");  

Java代码  
  1. /** 
  2.     *但是我们如何读取List呢 
  3.     *看这里: 
  4.     *<buttons> 
  5.   *  <name>OK,Cancel,Help</name> 
  6.   *  <name>Yes,No,Cancel</name> 
  7.   *</buttons> 
  8.   */  
  9.   这时我们可以用:  
  10.   List buttons = config.getList("buttons.name");  
  11.   for(String button:buttons){  
  12.             System.out.println(button);  
  13.         }  
但是显示的是
Java代码  
  1. OK  
  2. Cancel  
  3. Help  
  4. Yes  
  5. No  
  6. Cancel  
我们想要的是
Java代码  
  1. OK,Cancel,Help  
  2. Yes,No,Cancel  
如果看过之前的文章就会知道,我们有一些设置没有设
也就是我们要禁用List分隔符delimiter.在AbstractionConfiguration
这个类中(XMLConfiguration的父类)有这个setDelimiterParsingDisabled方法可以
禁用分隔符。但是要在读取XML文件之前设置这个属性。所以代码改为
Java代码  
  1. XMLConfiguration config = new XMLConfiguration();  
  2.         config.setDelimiterParsingDisabled(true);  
  3.         config.setFileName("XMLtest.xml");  
  4.         config.load();  
  5.         List<String> buttons = config.getList("buttons.name");  
  6.         for(String button:buttons){  
  7.             System.out.println(button);  
  8.         }  
这就可以了。   
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Apache Commons Configuration 使用 (自动加载修改配置)
Android资源文件-使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
common
struts1.3随笔
Android
Android Studio之编译提示\app\src\main\res\values\colors.xml:1:1 Error:前言有不允许的内容
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服