dom4j解析XML文件

<?xml version="1.0" encoding="UTF-8"?>
<action-controller>
	<action>
		<name>login</name>
		<class>
			<name>servlet.LoginAction</name>
			<method>login</method>
		</class>
		<result>
			<name>success</name>
			<type>forward</type>
			<value>login_success.jsp</value>
		</result>
		<result>
			<name>fail</name>
			<type>redirct</type>
			<value>login_fail.jsp</value>
		</result>
	</action>
	<action>
		<name>register</name>
		<class>
			<name>servlet.RegisterAction</name>
			<method>register</method>
		</class>
		<result>
			<name>success</name>
			<type>forward</type>
			<value>register_success.jsp</value>
		</result>
		<result>
			<name>fail</name>
			<type>redirct</type>
			<value>register_fail.jsp</value>
		</result>
	</action>
</action-controller>



public static Map<String, ActionBean> parseXML(String path)
			throws Exception {
		Map<String, ActionBean> abMap = new HashMap<String, ActionBean>();
		SAXReader reader = new SAXReader();
		Document doc = reader.read(new File(path));
		Element root = doc.getRootElement();
		List<?> actions = root.elements("action");

		for (Iterator<?> iter = actions.iterator(); iter.hasNext();) {
			ActionClass ac = new ActionClass();
			ActionBean ab = new ActionBean();
			Map<String, Result> rMap = new HashMap<String, Result>();
			Element action = (Element) iter.next();
			String name = action.element("name").getText();
			String className = action.element("class").element("name")
					.getText();
			String classMethod = action.element("class").element("method")
					.getText();
			ac.setName(className);
			ac.setMethod(classMethod);

			Iterator<?> iterator = action.elementIterator("result");
			while (iterator.hasNext()) {
				Result res = new Result();
				Element resElem = (Element) iterator.next();
				res.setName(resElem.elementText("name"));
				res.setType(resElem.elementText("type"));
				res.setValue(resElem.elementText("value"));
				rMap.put(resElem.elementText("name"), res);
			}
			ab.setName(name);
			ab.setActionClass(ac);
			ab.setAbRMap(rMap);
			abMap.put(name, ab);
		}
		return abMap;
	}


你可能感兴趣的:(dom4j解析XML文件)