使用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();

}

}

}