1 <?xml version="1.0" encoding="UTF-8"?> 2 <prop> 3 <mess> 4 <property name="sSize" value="52"></property> 5 <property name="cSize" value="23"></property> 6 <property name="pSize" value="15"></property> 7 <property name="aSize" value="25"></property> 8 </mess> 9 </prop>
1 package com.fancy.util; 2 3 import java.util.List; 4 import org.jdom.Document; 5 import org.jdom.Element; 6 import org.jdom.input.SAXBuilder; 7 /** 8 * ----------------------------------------- 9 * @文件: XmlDom.java 10 * @描述: JDOM 解析XML资源 11 * ----------------------------------------- 12 */ 13 public class XmlDom { 14 15 /** 16 * @方法名: obtainValue 17 * @参数名:@param name:属性名 18 * @参数名:@return :返回与属性名一致的属性值 19 * @描述语: 解析XML数据,返回与属性名一致的属性值,查找不到匹配属性名则返回null 20 */ 21 public static String obtainValue(String name){ 22 try { 23 //创建一个SAXBuilder对象 24 SAXBuilder saxBuilder = new SAXBuilder(); 25 //读取prop.xml资源 26 Document doc = saxBuilder.build("prop.xml"); 27 //获取根元素(prop) 28 Element root = doc.getRootElement(); 29 //获取根元素下面的所有子元素(mess) 30 List<Element> messList = root.getChildren("mess"); 31 //子根元素(mess) 32 Element childrenRoot = null; 33 //property元素集合 34 List<Element> propertyList = null; 35 //遍历根元素的子元素集合(即遍历mess元素) 36 for(int i = 0; i < messList.size(); i++){ 37 //将根元素prop下的mess子元素作为一个新的子根元素 38 childrenRoot = messList.get(i); 39 //获取子根元素mess下的所有property子元素 40 propertyList = childrenRoot.getChildren("property"); 41 //遍历子根元素的子元素集合(即遍历property元素) 42 for(int j = 0; j < propertyList.size(); j++){ 43 //获取property元素 44 Element element = propertyList.get(j); 45 //element.getAttributeValue("name"):获取property中name属性的值 46 if(element.getAttributeValue("name").equals(name)){ //如果name的值一致 47 return element.getAttributeValue("value"); //取得name对应的value属性值 48 } 49 } 50 } 51 //遍历完没有查找到结果返回null 52 return null; 53 } catch (Exception e) {e.printStackTrace();} 54 return null; 55 } 56 }
最后来创建一个简单的测试类即可
1 package test; 2 3 import com.fancy.util.XmlDom; 4 /** 5 * ----------------------------------------- 6 * @文件: Test.java 7 * @描述: 测试类 8 * ----------------------------------------- 9 */ 10 public class Test { 11 12 public static void main(String[] args) { 13 System.out.println(XmlDom.obtainValue("pSize")); 14 System.out.println(XmlDom.obtainValue("PSize")); 15 } 16 17 }