java 值Document解析xml詳細介紹
java 值Document解析xml詳細介紹
使用jar包:jdom.jar
配置文件格式 global.xml

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

