JAVA-WEB dom4j解析XML文件


XML一般都作为配置文件使用,使用Java的IO技术就可以解析不过很麻烦。

可以使用第三方的开发包来处理XML文件,下面来介绍一下。

常见的有三种方式:

1.    DOM:需要将整个XML加载到内存解析成一个Document对象,可以进行增删改查操作。

    缺点是如果XML文件过大,可能会出现内存溢出的现象。

2.    SAX:是一种快速的方法,可以处理大文件。

    缺点是只能读使用后将释放资源。

3.    PULL:Android内置的XML解析方式。

常见的解析开发包:

JAXP、JDom、jsoup、dom4j(此篇文章使用这种比较常用的解析开发包,hibernate底层就采用此包)

代码如下:

package demo.xml.dom4j;

import java.util.List;

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

public class Dom4jTest {
	
	
	
	public static void main(String[] args) {
		//获得saxreader实例
		SAXReader reader = new SAXReader();
		
		try {
			//获得xml文档
			Document document = reader.read("src/demo/xml/dom4j/web.xml");
			//获得根元素
			Element rootElement = document.getRootElement();
			//根元素名称
			String nodeName = rootElement.getName();
			System.out.println(nodeName);
			//获得根元素下所有元素的列表
			List<Element> elements = rootElement.elements();
			//遍历根元素下元素
			for (Element element : elements) {
				String childName = element.getName();
				System.out.println("NodeName:"+childName);
				if("servlet".equals(childName)) {
					Element servletName = element.element("servlet-name");
					System.out.println("servletName:"+servletName.getText());
					Element servletClass = element.element("servlet-class");
					System.out.println("servletName:"+servletClass.getText());
				}
			}
			System.out.println("-----------------------------");
			//获得指定元素
			Element servletMapping = rootElement.element("servlet-mapping");
			System.out.println(servletMapping.getName());
			Element servletName = servletMapping.element("servlet-name");
			System.out.println("servletName:"+servletName.getText());
			Element urlPattern = servletMapping.element("url-pattern");
			System.out.println("urlPattern:"+urlPattern.getText());
			
		} catch (DocumentException e) {
			e.printStackTrace();
		}
		
	}
	
	
}

猜你喜欢

转载自blog.csdn.net/alexzt/article/details/80699713