读取XML节点内容

import java.io.*;
import java.util.*;

import org.dom4j.*;
import org.dom4j.io.*;

public class ReadXML {

	private static File file = null;
	private static Element root = null;
	static {
		file = new File("./config/flow.xml");
		SAXReader reader = new SAXReader();
		try {
			Document doc = reader.read(file);
			root = doc.getRootElement();
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		Map<String,String> map = ReadXML.getNode("addApplyInfo");
		System.out.println(map.get("next"));
	}
	
	/**
	 * 根据节点,返回相应的map
	 * map 中的键值对根据 节点的 子节点进行匹配
	 * key 用子节点名,value 用节点中的text值 
	 * @param node
	 * @return
	 * @author c.chen
	 * @date 2017年4月26日 上午10:25:47
	 */
	public static Map<String,String> getNode(String node){
		Map<String,String> map = new HashMap<String,String>();
		Element foo;
		for (Iterator i = root.elementIterator(node); i.hasNext();) {
			foo = (Element) i.next();
			List<Element> elList = foo.elements();
			for(Element el : elList){
				map.put(el.getName(), foo.elementText(el.getName()));
			}
		}
		return map;
	}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans>
	<addApplyInfo>
		<text>测试0</text>
		<next>n0</next>
		<msg>测试1</msg>
	</addApplyInfo>
</beans>

猜你喜欢

转载自llyilo.iteye.com/blog/2371544