jdom 解析 xml 文件

prop.xml 

<pre name="code" class="html"><?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>


 

XmlDom.java

package com.fancy.util;


import java.util.List;


import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;


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("src/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;
	}
}


test.java

package test;


import com.fancy.util.XmlDom;


public class Test {


    public static void main(String[] args) {
        System.out.println(XmlDom.obtainValue("pSize"));
        System.out.println(XmlDom.obtainValue("PSize"));
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值