您的位置:首页 > 其它

Jdom 解析 XML

2013-05-30 18:06 141 查看
先创建一个 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"));
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: