XML-Dom4j解析和Xpath的解析

--解析xml的方式有四种:DOM解析,SAX解析,DOM4j解析,JDOM解析,其中DOM的解析方式使用是最普遍的,原因是DOM的易使用,代码量相对其他方法要少。

下面来看看DOM4j解析方法及条件:

所需jar包:

dom4j-1.6.1.jar 下载地址:https://dom4j.github.io/    点击打开链接

 jaxen-1.1-beta-6.jar  下载地址:http://vdisk.weibo.com/s/vtdqhEz8YYep  点击打开链接


package com.zking.xml;

import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class XmlTest {
	/*
	 * DOM4j解析XML文件
	 */
	public static void dom4j() throws Exception {
		SAXReader saxReader = new SAXReader();// 实例化saxReader对象

		String path = XmlTest.class.getResource("config.xml").getPath();// 获取xml所在的绝对路径

		Document document = saxReader.read(path);// 读取xml的信息

		Element element = document.getRootElement(); // 获取根节点的信息

		Iterator<Element> le = element.elementIterator();// 去迭代根节点下面的子节点
		while (le.hasNext()) {
			Element e = le.next();// 获取根节点下的子节点信息

			String name = e.getName();// 获取根节点下的子节点的名字
			String value = e.attributeValue("属性名称"); // 获取根节点下的子节点的属性值
			String text = e.getText(); // 获取根节点下的子节点的值

		}

	}

	/*
	 * 附加(注意):xml文件在项目中存放位置  src根目录下
	 * 类名.class.getResourceAsStream("/config.xml"); 1.2.2 与读取配置文件的类在同一包
	 * 类名.class.getResourceAsStream("config2.xml"); 1.2.3 WEB-INF(或其子目录下)
	 * ServletContext application = this.getServletContext(); InputStream is =
	 * application.getResourceAsStream("/WEB-INF/config3.xml");
	 */

	/*
	 * XPATH解析xml文件
	 */
	public static void xpath() throws Exception {
		SAXReader saxReader = new SAXReader();// 实例化saxReader对象

		String path = XmlTest.class.getResource("config.xml").getPath();// 获取xml所在的绝对路径

		Document document = saxReader.read(path);// 读取xml的信息

		List<Element> le = document.selectNodes("/config/action/forward");// 选择节点查询信息,从根节点开始这里找到了forward节点
		for (Element e : le) {
			String name = e.getName();// 获取根节点下的子节点的名字
			String value = e.attributeValue("属性名称"); // 获取根节点下的子节点的属性值
			String text = e.getText(); // 获取根节点下的子节点的值
		}

	}

	public static void main(String[] args) throws Exception {

		/*
		 * DOM4j解析XML文件
		 */
		dom4j();

		/*
		 * XPATH解析xml文件
		 */
		xpath();
	}

}

由此可知:DOM4j是层层迭代,去获取节点的信息,每一层代表一个节点信息,从根节点开始去往子节点寻找,适合寻找多个节点的信息。

Xpath:是可以选择性去寻找节点的信息,适合寻找单个节点的信息

总而言之:这两者各有各的优势。。


好啦,程序小白就介绍到这里,希望对有大家哦~



猜你喜欢

转载自blog.csdn.net/mr_xiayijie/article/details/80517050