XML解析实现

XML的解析方式和解析器

  • 开发中比较常见的解析方式有两种,如下:

1、DOM:要求解析器把整个XML文档装载到内存,并解析成一个Document对象。

a) 优点:元素与元素之间保留结构关系,故可以进行增删改查操作。

b) 缺点:XML文档过大,可能出现内存溢出现象。

2、SAX:是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。并以事件驱动的方式进行具体解析,每执行一行,都将触发对应的事件。(了解)

a) 优点:处理速度快,可以处理大文件。

b) 缺点:只能读,逐行后将释放资源。

  • 解析器:就是根据不同的解析方式提供的具体实现。有的解析器操作过于繁琐,为了方便开发人员,又提供易于操作的解析开发包。
  • 常用的解析开发包:JAXP、JDom、jsoup、dom4j(常用)。


XML约束

常见的xml约束:DTD(dtd文件)、Schema(xsd文件)

用于约束xml文档,规定xml文档中元素的名称,子元素的名称及顺序,元素的属性等。


XML解析实现

1、导入jar包

dom4j-1.6.1.jar

2、准备需要解析的xml文件


3、编写解析代码

package com.xml.test;

import java.util.List;

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

public class TestXML {
	
	@Test
	public void testXML(){
		
		try {
			//1.创建解析器对象
			SAXReader reader = new SAXReader();
			//2.使用解析器加载web.xml文件得到document对象
			Document document = reader.read("src/com/xml/web.xml");
//			Document document = reader.read(new File("E:/eclipse/workspace/XML/src/com/xml/web.xml"));
			//3.获取根元素节点
			Element rootElement = document.getRootElement();
			//4.获取根元素下的子元素
			List<Element> elements = rootElement.elements();
			//也可以根据元素名称获取单一子元素节点
//			Element element = rootElement.element("servlet");
			//5.遍历所有子元素
			for (Element element : elements) {
				//6.判断元素名称为servlet的元素
				if(element.getName().equals("servlet")){
					//7.根据元素名称获取servlet-name元素
					Element element1 = element.element("servlet-name");
					Element element2 = element.element("servlet-class");
					//8.根据元素名称获取servlet-name的文本节点
					System.out.println(element1.getText());
					System.out.println(element2.getText());
				}
				
			}
			
		} catch (DocumentException e) {
			e.printStackTrace();
		}
		
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值