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;
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值