java 值Document解析xml詳細(xì)介紹
創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、察哈爾右翼后網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、商城系統(tǒng)網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為察哈爾右翼后等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
使用jar包:jdom.jar
配置文件格式 global.xml
一、獲取輸入的值組成的結(jié)點(diǎn)
我們將每個(gè)結(jié)點(diǎn)使用“.” 拼接起來(lái), 如結(jié)點(diǎn)i ,拼接為abc.def.i, 注意不包含root。解析每個(gè)結(jié)點(diǎn)的名字。
/** * 獲取對(duì)應(yīng)結(jié)點(diǎn)的名字 * @param name 不包含root結(jié)點(diǎn)的拼接,ie: abc.def.i * @return */ private String[] parsePropertyName(String name) { //結(jié)點(diǎn)序號(hào)從0開始 int size = name.split("\\.").length; String[] parms =name.split("\\."); return parms; }
二、獲取對(duì)應(yīng)結(jié)點(diǎn)的值
2.1、結(jié)點(diǎn)為
/** * abc.def.i結(jié)點(diǎn)下有個(gè)結(jié)點(diǎn)為: ** 獲取對(duì)應(yīng)結(jié)點(diǎn)的value
* @param name 結(jié)點(diǎn)的值(name,是不包含root結(jié)點(diǎn), 使用"."拼接的, ie: abc.def.i) * @param defaultName 沒(méi)有獲取到該節(jié)點(diǎn)內(nèi)容, 返回默認(rèn)值 * @return */ public synchronized String getPropertyValue(String name, String valueName) { //獲取根結(jié)點(diǎn)對(duì)象 Element element = doc.getRootElement(); //獲取各級(jí)結(jié)點(diǎn)對(duì)應(yīng)的屬性 String[] parms = parsePropertyName(name); for (String parm : parms) { element = element.getChild(parm); } //得到無(wú)兒子結(jié)點(diǎn)的element的屬性值 return element.getAttributeValue(valueName); }
2.2. 結(jié)點(diǎn)為 8的形式
首先從緩存中獲取改改結(jié)點(diǎn)的值, 如果沒(méi)有,在從配置文件中讀取,
/** * 獲取結(jié)點(diǎn)的值 * <i>8</i> * @param name 葉子結(jié)點(diǎn)的值(name,是不包含root結(jié)點(diǎn), 使用"."拼接的, 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; }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!