dom4j解析xml

在开发web应用时,几乎所有的框架实现机制都大量的包含xml配置文件,那么如何解析xml文件呢?简单介绍几个有用的dom4j解析xml的方法。

xml文件

<?xml version="1.0" encoding="UTF-8"?>
<controller>
	<package>
		<action name="login" class= "com.haha" method="post">
			<result name="success">/LoginSuccess.jsp</result>
			<result name="failure">/Login.jsp</result>
		</action>
	</package>
</controller>

首先,获取SAXReader对象。SAXReader封装了一个IO流,即在xml文件中读取数据。

SAXReader reader = new SAXReader();

获取Document对象。

Document document = reader.read(new File("src/com/controller.xml"));

这里文件路径要在src源码包下开始写,不然找不到xml文件。(我也不懂为什么,按说相对路径可以找到才对)

Element root  = document.getRootElement(); //获得root节点<controller>
			//System.out.println(root.getName());
			Element pack = root.element("package"); //直接获取到package节点
						List<Element> actions = pack.elements();
			for(Element action : actions) {
				ActionConfig config = new ActionConfig();		//创建一个ActionConfig对象,一个javabean对象
				String actionName = action.attributeValue("name");		
				String actionMethod = action.attributeValue("method");
				String actionClzName = action.attributeValue("class");
				System.out.println(actionName+"--"+actionMethod);
				config.setName(actionName);
				config.setClsName(actionClzName);
				if(actionMethod == null || actionMethod.equals("")) { //若方法为空,则默认执行execute方法
					actionMethod = "execute";
				}
				config.setMehtod(actionMethod);
				
				//获取每个action的result节点
				List<Node> results = action.selectNodes("result"); //选节点名为result的节点  ,Node可以直接定位到某个节点
				Iterator<Node> it = results.iterator();
				while(it.hasNext()) {
					Element result = (Element)it.next();  //这里注意,可以直接将Node节点强制转为Element类型,以方便
					String resultName = result.attributeValue("name");	//获取到该节点的属性值以及标签内容
					String resultForword = result.getText();
					System.out.println(resultForword);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值