隨筆-126  評論-247  文章-5  trackbacks-0

           
           博客搬家的時候順便把文章搬過來,如果看得不是很清楚的,可以前往原博客地址:
           -->URL:
          http://www.cnblogs.com/fancyzero/archive/2012/06/09/jdom.html

          先創(chuàng)建一個 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>

           

          下面要實現(xiàn)的是通過不同的 name 屬性值來獲得其對應(yīng)的 vaule 的屬性值,這里是用 jdom 來解析XML數(shù)據(jù),所以需要導入 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 
               * @參數(shù)名:@param name:屬性名
               * @參數(shù)名:@return           :返回與屬性名一致的屬性值
               * @描述語: 解析XML數(shù)據(jù),返回與屬性名一致的屬性值,查找不到匹配屬性名則返回null
               */
              public static String obtainValue(String name){
                  try {
                      //創(chuàng)建一個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對應(yīng)的value屬性值 } } } //遍歷完沒有查找到結(jié)果返回null return null; } catch (Exception e) {e.printStackTrace();} return null; } }

          最后來創(chuàng)建一個簡單的測試類即可

          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 閱讀(794) 評論(1)  編輯  收藏

          評論:
          # re: Jdom 解析 XML 2014-03-16 15:23 | 落葉的夢想
          文章寫的簡單易懂,謝謝樓主的分享。  回復  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           

          隨筆分類(8)

          隨筆檔案(104)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 1462355
          • 排名 - 15

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 汕尾市| 化德县| 吴桥县| 松阳县| 陵川县| 巴东县| 彭水| 时尚| 伊金霍洛旗| 襄樊市| 常德市| 洪江市| 禄丰县| 昂仁县| 申扎县| 玉树县| 勐海县| 安顺市| 桂平市| 汝阳县| 来安县| 甘肃省| 大英县| 安泽县| 元阳县| 兰西县| 曲松县| 朔州市| 辰溪县| 昌都县| 通化县| 梧州市| 运城市| 太湖县| 漯河市| 宁陵县| 峡江县| 余干县| 瑞昌市| 芦溪县| 徐汇区|