XML解析

XML解析

解析方式

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

  1. DOM:要求解析器把整个XML文档装载到内存,并解析成一个Document对象 a)优点:元素与元素之间保留结构关系,故可以进行增删改查操作。 b)缺点:XML文档过大,可能出现内存溢出
  2. SAX:是一种速度更快,更有效的方法。她逐行扫描文档,一边扫描一边解析。并以事件驱动的方式进行具体解析,每执行一行,都触发对应的事件。
    a)优点:不会出现内存问题,可以处理大文件 b)缺点:只能读,不能回写。
  3. PULL:Android内置的XML解析方式,类似SAX。

解析包

  • JAXP:sun公司提供支持DOM和SAX开发包
  • Dom4j: 比较简单的的解析开发包(常用),
  • JDom:与Dom4j类似
  • Jsoup:功能强大DOM方式的XML解析开发包,尤其对HTML解析更加方便

Dom4j的基本使用

DOM解析原理及结构模型

解析原理

XML DOM 和 HTML DOM一样,XML DOM
将整个XML文档加载到内存,生成一个DOM树,并获得一个Document对象,通过Document对象就可以对DOM进行操作

DOM中的核心概念就是节点,在XML文档中的元素、属性、文本,在DOM中都是节点!所有的节点都封装到了Document对象中。

常用的方法

创建解析器对象:
	SAXReader sr = new SAXReader();
解析器读取文件方法:
	Document doc = sr.read(String fileName);
Document的方法:
	getRootElement()			: 获取根元素	
	
节点中的方法:	
	elements()     				: 获取当前元素的子元素
	element(String name)		: 根据元素名获取指定子元素(如果有多个就获取到第一个)
	getName()					: 获取元素的元素名
    elementText(String name)	: 获取指定子元素的文本值,参数是子元素名称
	attributeValue(String name)	: 获取当前元素下某个属性的值
	getText()					: 获取当前元素的文本值

Dom4J结合XPath解析XML

XPath 使用路径表达式来选取HTML\XML 文档中的元素节点或属性节点。节点是通过沿着路径 (path) 来选取的。XPath在解析HTML\XML文档方面提供了独树一帜的路径思想。

XPath使用步骤

步骤1:导入jar包(dom4j和jaxen-1.1-beta-6.jar)

步骤2:通过dom4j的SaxReader解析器对象,获取Document对象

步骤3: 利用Xpath提供的api,结合xpaht的语法完成选取XML文档元素节点进行解析操作。

document常用的api

document.selectSingleNode("xpath语法");  // 获得一个节点(标签,元素) 
document.selectNodes("xpath语法");     // 获得多个节点(标签,元素)

XPath语法
XPath表达式,就是用于选取HTML文档中节点的表达式字符串。

获取XML文档节点元素一共有如下4种XPath语法方式:

  1. 绝对路径表达式方式 例如: /元素/子元素/子子元素…

  2. 相对路径表达式方式 例如: 子元素/子子元素… 或者 ./子元素/子子元素…

  3. 全文搜索路径表达式方式 例如: //子元素//子子元素

  4. 谓语(条件筛选)方式 例如: //元素[@attr1=value]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值