Java核心技术(读写XML)

XML概述

属性文件可以用来描述程序配置。属性文件采用的是一种简单的平面层次结构,包含了一组名/值对。XML文件能够表示层次结构和重复

元素而不会被曲解。XML文档以一个文档头开始,之后通常是文档类型定义(DTD),文档类型定义是确保文档正确的一个最要机制,但是不

是必需的。XML文档的正文包含根元素,根元素包含其他一些元素。元素可以有子元素、文本、属性。

通过调用System.getProperties()可以获得当前系统属性:

 

这个系统属性集合总是包含以下键的值:

解析XML文档

Java库提供两种XML解析器:

*文档对象模型解析器(DOM),将读入的XML文档转换成树结构。

*流机制解析器,在读入XML文档时生成相应的事件。

DOM解析器:org.w3c.dom包包含了接口类型的定义。Document对象是XML文档的树型结构在内存中的表现。它由实现Node接口

及其多个子接口的类的对象构成。可以通过调用getDocumentElement方法来分析文档的内容,它将返回根元素。getTagName方法可以

返回元素的标签名。使用getChildNodes方法可以返回一个类型为NodeList集合的子元素。

流机制解析器:SAX解析器使用的是事件回调,而StAX解析器提供了解析事件的迭代器。

SAX解析器:SAX解析器在解析XML输入的构件时就报告事件,但不会以任何方式存储文档。由事件处理器决定是否要建立数据

结构。实际上,DOM解析器是在SAX解析器的基础上建立起来的,它在接收到解析器事件时建立DOM树。在使用SAX解析器时,需要

一个处理器来定义不同的解析器事件的事件动作。ContentHandler接口定义了若干个回调方法:

*startElement和endElement在每当遇到起始或终止标签时调用。

*characters每当遇到字符数据时调用。

*startDocument和endDocument在文档开始和结束时各调用一次。

StAX解析器:是用一种“拉解析器”,与安装事件处理器不同,只需基本循环来迭代所有事件。

验证XML文档

XML解析器能自动检验某个文档是否正确。如果要规范文档结构,可以提供一个文档类型定义(DTD)或一个XML Schema定义。DTD

或schema包含了用于解释文档时如何构成的规则。这些规则规范了每个元素的合法子元素和属性。

使用XPath来定位信息

如果要定位某个XML文档中的一段特定信息,那么通过遍历DOM树的众多节点来进行查找显得有些麻烦。XPath语言使得访问树节点

变得很容易。需要先从XPathFactory创建一个XPath对象,然后调用evaluate方法来计算XPath表达式。

生成XML文档

一种比较好的方法是用文档的内容构建一颗DOM树,然后再写出该树的所有内容。目前还不支持把DOM树写到输出流,我们可以使用

可扩展的格式页转换API。

使用StAX写XML文档:从某个OutputStream中构建一个XMLStreamWriter可以直接将XML树写出。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值