使用jdom解析xml文件
package com.uplooking.club.base.util;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.junit.Test;
import com.uplooking.club.base.entity.ActionMapping;
import com.uplooking.club.base.entity.ResultMapping;
public class XmlUtil {
@Test
public void testparseXml() {
XmlUtil x = new XmlUtil();
x.parseXml(“baoge.xml”);
}
public void parseXml(String fileName) {
SAXBuilder builder = new SAXBuilder();
try {
Document document =
builder.build(this.getClass().getClassLoader().getResource(fileName).getPath());
Element root = document.getRootElement();
System.out.println(root.getName());
List<Element> action = root.getChildren(“action”);
// for循环遍历,每循环一次,获取一个aciton的内容,将其放入最大的map中,MapperUtil.actionmapper
for (int i = 0; i < action.size(); i++) {
System.out.println(action.get(i).getAttributeValue(“class”));
System.out.println(action.get(i).getAttributeValue(“method”));
// name的值就是大Map的键(key)
System.out.println(action.get(i).getAttributeValue(“name”));
// actionmap这个对象就是大Map的值(value)
ActionMapping actionmap = new ActionMapping();
// 为actionmap的classname赋值
actionmap.setClassname(action.get(i).getAttributeValue(“class”));
// 为actionmap的method赋值
actionmap.setMethod(action.get(i).getAttributeValue(“method”));
// result是action下的子节点,还需要遍历
List<Element> result_list = action.get(i).getChildren(“result”);
// action标签内的子标签<result>的内容,封装为一个Map对象ResultMapping
Map<String, ResultMapping> resultmap = new HashMap<String, ResultMapping>();
for (Element element : result_list) {
ResultMapping rp = new ResultMapping();
rp.setPvalue(element.getText());
rp.setType(element.getAttributeValue(“type”));
resultmap.put(element.getAttributeValue(“name”), rp);
}
// 为actionmap的resultmapping对象赋值
actionmap.setResultmapping(resultmap);
MapperUtil.actionmapper.put(action.get(i).getAttributeValue(“name”), actionmap);
}
} catch (JDOMException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}