zoukankan      html  css  js  c++  java
  • Jdom 解析 XML【转】

    先创建一个 xml 文件,并把它放置到项目的根目录下:
    prop.xml

    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>
    下面要实现的是通过不同的 name 属性值来获得其对应的 vaule 的属性值,这里是用 jdom 来解析XML数据,所以需要导入 jdom 所需的jar包,我这里用的是 jdom-2.0.0.jar
    XmlDom.java
     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 }

     

  • 相关阅读:
    用Photoshop制作一寸照片
    每天只问孩子这4句话,胜过百般疼爱
    机场也有打折季,你知道吗?请收好这份扫货指南
    这8个习惯会让孩子越来越笨,甚至抑郁!父母赶紧收手
    读后感该怎么写
    vue-cli 4058错误
    bootstrap img自适应
    移动端高清、多屏适配方案
    去掉页面滚动条
    js 404页面跳转
  • 原文地址:https://www.cnblogs.com/macula/p/2613787.html
Copyright © 2011-2022 走看看