XML解析器将一个未经处理的序列字符串作为输入,并对它执行一些特定的操作。首先它检查XML数据是否符合句法规则,确保开始标记与其有匹配的结束标记,并且没有重叠的元素。大多数解析器还根据文档类型定义(Document Type Definition,DTD)或XML Schema进行确认,核实其结构和内容是你所指定的。最后,解析输出通过编程API提供对XML文档内容的访问。
有三种用于Java的流行XML解析技术:
文档对象模型(Document Object Model,DOM),一个来自W3C的成熟标准。
用于XML的简单API(Simple API for XML,SAX),第一个被广泛采用的用Java编写的XML API,是一个事实上的标准。
用于XML的数据流API(Streaming API for XML,StAX),JSR-173中采用的一个很有前途的新解析模型。
这些技术中的每一种都有其优点和缺点。
下面的XML文档books.xml描述了一个书籍目录,并在本文中作为例子使用:
<catalog> <!—Sample —> <book id="101"> <title>XML in a Nutshell</title> <author>Elliotte Rusty Harold, W. Scott Means</author> <price>39.95</price> </book> <book id="121"> <title>Who Moved My Cheese</title> <author>Spencer, M.D. Johnson, Kenneth H. Blanchard</author>