778.md 2.5 KB
Newer Older
W
init  
wizardforcel 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# 介绍 XSL,XSLT 和 XPath

> 原文: [https://docs.oracle.com/javase/tutorial/jaxp/xslt/intro.html](https://docs.oracle.com/javase/tutorial/jaxp/xslt/intro.html)

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

XSL-FO

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

XSLT

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

XPath

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

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

## JAXP 转换包

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

`javax.xml.transform`

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

`javax.xml.transform.dom`

W
wizardforcel 已提交
31
定义`DOMSource``DOMResult`类,它们允许您使用 DOM 作为转换的输入或输出。
W
init  
wizardforcel 已提交
32 33 34

`javax.xml.transform.sax`

W
wizardforcel 已提交
35
定义`SAXSource``SAXResult`类,它们允许您使用 SAX 事件生成器作为转换的输入,或将 SAX 事件作为输出提供给 SAX 事件处理器。
W
init  
wizardforcel 已提交
36 37 38

`javax.xml.transform.stream`

W
wizardforcel 已提交
39
定义`StreamSource``StreamResult`类,它们允许您使用 I / O 流作为转换的输入或输出。
W
init  
wizardforcel 已提交
40 41 42

## XSLT 示例程序

W
wizardforcel 已提交
43
与本教程中的其他课程不同,本课程中使用的示例程序不包含在 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期*`/ samples`目录随 JAXP 1.4.2 参考实现提供。但是你可以 [`download a ZIP file of the XSLT samples here`](../examples/xslt_samples.zip)