• 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"));
        }
        
    }
     
     
     
     
  • 相关阅读:
    每日一库:ZeroClipboard.js
    每日一库:Zepto.js
    每日一库:microAjax.js
    浏览器渲染方面资料
    MongoDB语法
    使用jquery选中文本(包括输入框input和文本框textarea)
    asp.net 将数据静态化
    TreeView 节点
    asp.net导出数据到word或者excel
    C# 把数组转换成DataSet数据类型
  • 原文地址:https://www.cnblogs.com/anuoruibo/p/3108735.html
Copyright © 2020-2023  润新知