java 值Document解析xml詳細介紹
使用jar包:jdom.jar
配置文件格式 global.xml
一、獲取輸入的值組成的結點
我們將每個結點使用“.” 拼接起來, 如結點i ,拼接為abc.def.i, 注意不包含root。解析每個結點的名字。
1
2
3
4
5
6
7
8
9
10
11
12
|
/** * 獲取對應結點的名字 * @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”>的形式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
/** * abc.def.i結點下有個結點為: * <name valueName="value123"> * 獲取對應結點的value<br> * @param name 結點的值(name,是不包含root結點, 使用"."拼接的, ie: abc.def.i) * @param defaultName 沒有獲取到該節點內容, 返回默認值 * @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>的形式
首先從緩存中獲取改改結點的值, 如果沒有,在從配置文件中讀取,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/** * 獲取結點的值 * <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; } |
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://blog.csdn.net/wuxintdrh/article/details/70182385