`
wangxin0072000
  • 浏览: 87855 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Apache Commons-configuration 学习笔记3

    博客分类:
  • java
阅读更多
读取XML
假如有个XML,名叫:XMLtest.xml如下:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<gui-definition>
  <colors>
    <background>#808080</background>
    <text>#000000</text>
    <header>#008000</header>
    <link normal="#000080" visited="#800080"/>
    <default>${colors.header}</default>
  </colors>
  <rowsPerPage>15</rowsPerPage>
  <buttons>
    <name>OK,Cancel,Help</name>
    <name>Yes,No,Cancel</name>
  </buttons>
  <numberFormat pattern="###\,###.##"/>
</gui-definition>	

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

/**
	*但是我们如何读取List呢
	*看这里:
	*<buttons>
  *  <name>OK,Cancel,Help</name>
  *  <name>Yes,No,Cancel</name>
  *</buttons>
  */
  这时我们可以用:
  List buttons = config.getList("buttons.name");
  for(String button:buttons){
			System.out.println(button);
		}
但是显示的是
OK
Cancel
Help
Yes
No
Cancel
我们想要的是
OK,Cancel,Help
Yes,No,Cancel
如果看过之前的文章就会知道,我们有一些设置没有设
也就是我们要禁用List分隔符delimiter.在AbstractionConfiguration
这个类中(XMLConfiguration的父类)有这个setDelimiterParsingDisabled方法可以
禁用分隔符。但是要在读取XML文件之前设置这个属性。所以代码改为
XMLConfiguration config = new XMLConfiguration();
		config.setDelimiterParsingDisabled(true);
		config.setFileName("XMLtest.xml");
		config.load();
		List<String> buttons = config.getList("buttons.name");
		for(String button:buttons){
			System.out.println(button);
		}
这就可以了。
分享到:
评论

相关推荐

    struts2学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

    Hibernate学习笔记

    ### Hibernate学习笔记知识点详解 #### 一、在Eclipse中配置Hibernate环境 ##### 1. 配置Classpath Variables 为了在Eclipse中正确配置Hibernate,首先需要设置Classpath Variables来指向Hibernate安装路径下的...

    Struts学习笔记

    ### Struts学习笔记 #### 一、Struts2框架简介 Struts2是一个开源的、用于开发Java EE Web应用程序的MVC框架。它基于Struts 1进行了改进,提供了更加强大和灵活的功能,比如拦截器、动态方法调用、类型转换等。...

    传智播客struts2全程学习笔记

    ### 传智播客Struts2全程学习笔记 #### Struts2的优点 1. **无侵入式设计**:与Struts1相比,Struts2的设计更为先进,它不依赖于Servlet API或Struts API,这使得Struts2更加灵活且易于集成到其他环境中。在代码...

    Struts2.1学习笔记

    ### Struts2.1学习笔记 #### Struts2的来源与优点 - **来源**:Struts2是在WebWork2的基础上发展起来的,它继承了WebWork2的优点,并且进行了改进,使其更适合现代Web应用程序的需求。与Struts1相比,Struts2的...

    strust2.0学习笔记

    ### Struts2.0 学习笔记 #### 引言 Struts2 是一款非常流行的 Java Web 开发框架,它基于 Struts1 进行了重大的改进与优化,不仅继承了 Struts1 的优秀特性,还在此基础上进行了扩展,支持更加丰富的功能,如拦截...

    struts2.0学习笔记

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"&gt; &lt;package name="struts2" extends="struts-default"&gt; &lt;!-- name属性对应表单中的...

    Spring+JDBC集成学习笔记(可参考ppt附件38-46页)

    **Spring+JDBC集成学习笔记** 在Java Web开发中,Spring框架因其强大的功能和灵活性而被广泛应用。Spring提供了与JDBC的集成,使得数据库操作更加便捷、高效且易于管理。以下将详细介绍Spring如何与JDBC结合,以及...

    struts2基本运行环境配置方法

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"&gt; &lt;package name="default" extends="struts-default"&gt; &lt;!-- 在这里添加Action定义 --&gt; ...

Global site tag (gtag.js) - Google Analytics