Jdom 解析 XML


 

先創建一個 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"));
    }
    
}


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM