这些Java教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
有关Java SE 9及其后续版本中更新的语言特性的概述,请参阅Java语言更改。
有关所有JDK版本的新功能、增强功能以及已删除或不推荐使用的选项的信息,请参阅JDK发行说明。
SAX和DOM API分别由XML-DEV小组和W3C定义。定义这些API的库如下:
javax.xml.parsers:JAXP API,为不同供应商的SAX和DOM解析器提供了一个通用接口。
org.w3c.dom:定义了Document类(DOM)以及DOM的所有组件的类。
org.xml.sax:定义了基本的SAX API。
javax.xml.transform:定义了将XML转换为其他形式的XSLT API。
javax.xml.stream:提供了特定于StAX的转换API。
Simple API for XML(SAX)是一种事件驱动的串行访问机制,用于逐个元素进行处理。该级别的API读取和写入XML到数据存储库或Web。对于服务器端和高性能应用程序,您将希望充分了解此级别。但对于许多应用程序来说,最基本的了解就足够了。
DOM API通常是一种更容易使用的API。它提供了一个熟悉的对象树结构。您可以使用DOM API来操作它所封装的应用程序对象的层次结构。DOM API非常适合交互式应用程序,因为整个对象模型都存在于内存中,用户可以访问和操作它。
另一方面,构建DOM需要读取整个XML结构并将对象树保存在内存中,因此它需要更多的CPU和内存资源。因此,SAX API往往更适用于服务器端应用程序和不需要内存中表示数据的数据过滤器。
在javax.xml.transform中定义的XSLT API允许您将XML数据写入文件或将其转换为其他形式。正如本教程的XSLT部分所示,您甚至可以与SAX API结合使用它将遗留数据转换为XML。
最后,javax.xml.stream中定义的StAX API提供了一种基于Java技术的流式事件驱动拉解析API,用于读取和写入XML文档。StAX提供了比SAX更简单的编程模型,比DOM更高效的内存管理。