java 值Document解析xml詳細(xì)介紹
java 值Document解析xml詳細(xì)介紹
使用jar包:jdom.jar
配置文件格式 global.xml
一、獲取輸入的值組成的結(jié)點
我們將每個結(jié)點使用“.” 拼接起來, 如結(jié)點i ,拼接為abc.def.i, 注意不包含root。解析每個結(jié)點的名字。
/** * 獲取對應(yīng)結(jié)點的名字 * @param name 不包含root結(jié)點的拼接,ie: abc.def.i * @return */ private String[] parsePropertyName(String name) { //結(jié)點序號從0開始 int size = name.split("\\.").length; String[] parms =name.split("\\."); return parms; }
二、獲取對應(yīng)結(jié)點的值
2.1、結(jié)點為<name valueName=”value123”>的形式
/** * abc.def.i結(jié)點下有個結(jié)點為: * <name valueName="value123"> * 獲取對應(yīng)結(jié)點的value<br> * @param name 結(jié)點的值(name,是不包含root結(jié)點, 使用"."拼接的, ie: abc.def.i) * @param defaultName 沒有獲取到該節(jié)點內(nèi)容, 返回默認(rèn)值 * @return */ public synchronized String getPropertyValue(String name, String valueName) { //獲取根結(jié)點對象 Element element = doc.getRootElement(); //獲取各級結(jié)點對應(yīng)的屬性 String[] parms = parsePropertyName(name); for (String parm : parms) { element = element.getChild(parm); } //得到無兒子結(jié)點的element的屬性值 return element.getAttributeValue(valueName); }
2.2. 結(jié)點為 <i>8</i>的形式
首先從緩存中獲取改改結(jié)點的值, 如果沒有,在從配置文件中讀取,
/** * 獲取結(jié)點的值 * <i>8</i> * @param name 葉子結(jié)點的值(name,是不包含root結(jié)點, 使用"."拼接的, ie: abc.def.i) * @return */ public synchronized String getProperty(String name) { //先從緩存中獲取 String value = cacheMap.get(name); if (value != null) { return value; } Element element = getElementByName(name); if (element == null) { return null; } //獲取value value = element.getText(); //緩存 cacheMap.put(name, value); return value; }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
java?MongoDB實現(xiàn)列表分頁查詢的示例代碼
本文主要介紹了java?MongoDB實現(xiàn)列表分頁查詢的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Java thrift服務(wù)器和客戶端創(chuàng)建實例代碼
Thrift是一個軟件框架,用來進(jìn)行可擴(kuò)展且跨語言的服務(wù)的開發(fā)。接下來通過本文給大家介紹Java thrift服務(wù)器和客戶端創(chuàng)建實例代碼,需要的朋友參考下吧2017-04-04深入Synchronized和java.util.concurrent.locks.Lock的區(qū)別詳解
本篇文章是對Synchronized和java.util.concurrent.locks.Lock的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06MyBatis學(xué)習(xí)教程(七)-Mybatis緩存介紹
MyBatis緩存分為一級緩存和二級緩存一級緩存,本文給大家介紹mybatis緩存知識,非常不錯具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)吧2016-05-05java實現(xiàn)interceptor攔截登錄權(quán)限
Java里的攔截器是動態(tài)攔截action調(diào)用的對象,本文主要介紹了java實現(xiàn)interceptor攔截登錄權(quán)限,具有一定的參考價值,感興趣的可以了解一下2023-09-09java實現(xiàn)socket從服務(wù)器連續(xù)獲取消息的示例
這篇文章主要介紹了java實現(xiàn)socket從服務(wù)器連續(xù)獲取消息的示例,需要的朋友可以參考下2014-04-04Springboot yml如何獲取系統(tǒng)環(huán)境變量的值
這篇文章主要介紹了Springboot yml如何獲取系統(tǒng)環(huán)境變量的值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02