介绍 XSL,XSLT 和 XPath

原文: https://docs.oracle.com/javase/tutorial/jaxp/xslt/intro.html

可扩展样式表语言(XSL)有三个主要子组件:

XSL-FO

格式化对象标准。到目前为止,这个标准是最大的子组件,它提供了描述字体大小,页面布局和对象渲染的其他方面的机制。此子组件未包含在 JAXP 中,也未包含在本教程中。

XSLT

这是转换语言,它允许您定义从 XML 到其他格式的转换。例如,您可以使用 XSLT 生成 HTML 或不同的 XML 结构。您甚至可以使用它来生成纯文本或将信息放入其他文档格式。 (正如您将在从任意数据结构生成 XML 中看到的那样,一个聪明的应用程序可以将其用于服务以操纵非 XML 数据)。

XPath

在底部,XSLT 是一种语言,允许您指定遇到特定元素时要执行的操作。但是要为 XML 数据结构的不同部分编写程序,您需要在任何给定时间指定您正在讨论的结构部分。 XPath 是规范语言。它是一种寻址机制,允许您指定元素的路径,例如,< article&gt;&lt; title>可以与< person&gt;&lt; title&gt;区别开来。 。通过这种方式,您可以为不同的< title&gt;描述不同类型的翻译。元素。

本节的其余部分描述了构成 JAXP Transformation API 的包。

JAXP 转换包

以下是构成 JAXP Transformation API 的包的说明:

javax.xml.transform

此包定义用于获取Transformer对象的工厂类。然后使用输入(源)和输出(结果)对象配置变换器,并调用其transform()方法以进行转换。使用其他三个包中的一个类创建源和结果对象。

javax.xml.transform.dom

定义DOMSourceDOMResult类,它们允许您使用 DOM 作为转换的输入或输出。

javax.xml.transform.sax

定义SAXSourceSAXResult类,它们允许您使用 SAX 事件生成器作为转换的输入,或将 SAX 事件作为输出提供给 SAX 事件处理器。

javax.xml.transform.stream

定义StreamSourceStreamResult类,它们允许您使用 I / O 流作为转换的输入或输出。

XSLT 示例程序

与本教程中的其他课程不同,本课程中使用的示例程序不包含在 install-dir / jaxp-1_4_2- _ 发布日期*中/ samples目录随 JAXP 1.4.2 参考实现提供。但是你可以 download a ZIP file of the XSLT samples here