本文共 942 字,大约阅读时间需要 3 分钟。
参考:《Java核心技术卷2 高级特性 》第三章
XML是一种非常有用的描述结构化信息的技术。
XML格式能够表示层次结构,这比属性文件的平面结构更加灵活。
XML格式能够表达层次结构,并且重复的元素不会被曲解。
XML文档结构一般以文档头开始:
或者
文档头是可选的,但是强烈建议使用。
文档头之后通常是文档类型定义(Document Type Definition,DTD),文档类型定义时确保文档正确的一个重要机制,但是它不是必须的。
XML文档的征文包含根元素,根元素包含其他元素。
在设计XML文档结构时,最好让元素要么包含子元素,要么包含文本,避免同时有文本和子元素,即混合式内容,可以简化解析过程。
解析XML文档,Java提供了两种XML解析器:
DOM解析器对于实现我们的大多数目的来说更容易一些,如果要处理很长的文档,用它生成树结构会消耗大量内存,或者只是对于某些元素感兴趣,而不关心上下文,这些情况下应该考虑使用流机制解析器。
使用XPath来定位信息
使用XPath执行下列操作比普通的DOM方式要简单的多:
(1)获得文档节点
(2)枚举它的子元素
(3)定位某个元素
(4)定位其子节点中名字为xx的节点
(5)定位其子节点中的text节点
(6)获取其数据
Java类库提供的流机制解析器,老而弥坚的SAX解析器和添加到Java SE6中的更现代化的StAX解析器。SAX解析器使用的是事件回调,而StAX解析器提供了遍历解析事件的迭代器,后者用起来通常更方便一些。
SAX解析器在解析XML输入数据的各个组成部分时会报告时间,但不会以任何方式存储文档,而是由事件处理器建立相应的数据结构。实际上,DOM解析器是在SAX解析器的基础上构建的,它在接收到解析器事件时构建dom树。
StAX解析器是一种拉解析器(pull parser),与安装事件处理器不同,只需要使用基本循环来迭代所有的事件。
转载地址:http://igyai.baihongyu.com/