博客搬家的時候順便把文章搬過來,如果看得不是很清楚的,可以前往原博客地址:
-->URL:http://www.cnblogs.com/fancyzero/archive/2012/06/09/jdom.html
先創建一個 xml 文件,并把它放置到項目的根目錄下:
prop.xml
<?xml version="1.0" encoding="UTF-8"?>
<prop>
<mess>
<property name="sSize" value="52"></property>
<property name="cSize" value="23"></property>
<property name="pSize" value="15"></property>
<property name="aSize" value="25"></property>
</mess>
</prop>
下面要實現的是通過不同的 name 屬性值來獲得其對應的 vaule 的屬性值,這里是用 jdom 來解析XML數據,所以需要導入 jdom 所需的jar包,我這里用的是 jdom-2.0.0.jar
XmlDom.java
package com.fancy.util;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
/**
* -----------------------------------------
* @文件: XmlDom.java
* @作者: fancy
* @郵箱: fancyz@yeah.net
* @時間: 2012-6-9
* @描述: JDOM 解析XML資源
* -----------------------------------------
*/
public class XmlDom {
/**
* @方法名: obtainValue
* @參數名:@param name:屬性名
* @參數名:@return :返回與屬性名一致的屬性值
* @描述語: 解析XML數據,返回與屬性名一致的屬性值,查找不到匹配屬性名則返回null
*/
public static String obtainValue(String name){
try {
//創建一個SAXBuilder對象
SAXBuilder saxBuilder = new SAXBuilder();
//讀取prop.xml資源
Document doc = saxBuilder.build("prop.xml");
//獲取根元素(prop)
Element root = doc.getRootElement();
//獲取根元素下面的所有子元素(mess)
List<Element> messList = root.getChildren("mess");
//子根元素(mess)
Element childrenRoot = null;
//property元素集合
List<Element> propertyList = null;
//遍歷根元素的子元素集合(即遍歷mess元素)
for(int i = 0; i < messList.size(); i++){
//將根元素prop下的mess子元素作為一個新的子根元素
childrenRoot = messList.get(i);
//獲取子根元素mess下的所有property子元素
propertyList = childrenRoot.getChildren("property");
//遍歷子根元素的子元素集合(即遍歷property元素)
for(int j = 0; j < propertyList.size(); j++){
//獲取property元素
Element element = propertyList.get(j);
//element.getAttributeValue("name"):獲取property中name屬性的值
if(element.getAttributeValue("name").equals(name)){ //如果name的值一致
return element.getAttributeValue("value"); //取得name對應的value屬性值
}
}
}
//遍歷完沒有查找到結果返回null
return null;
} catch (Exception e) {e.printStackTrace();}
return null;
}
}
最后來創建一個簡單的測試類即可
package test;
import com.fancy.util.XmlDom;
/**
* -----------------------------------------
* @文件: Test.java
* @作者: fancy
* @郵箱: fancyz@yeah.net
* @時間: 2012-6-9
* @描述: 測試類
* -----------------------------------------
*/
public class Test {
public static void main(String[] args) {
System.out.println(XmlDom.obtainValue("pSize"));
System.out.println(XmlDom.obtainValue("PSize"));
}
}
posted on 2012-06-09 12:05
fancydeepin 閱讀(791)
評論(1) 編輯 收藏