日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

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

發布時間:2023/12/6 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用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代碼??
  • <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

    ???

    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的操作代碼

    Java代碼??
  • <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

    Java代碼??
  • <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等相应信息的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。