提交 1ea38e64 编写于 作者: W wizardforcel

2020-06-22 20:52:50

上级 6ad16ed8
......@@ -14,7 +14,7 @@
* * *
**注 -** 尽管它们被称为对象,但 DOM 树中的条目实际上是相当低级的数据结构。例如,考虑这种结构:`< color&gt; blue&lt; / color>` 。颜色标签有一个元素节点,在其下面有一个包含数据的文本节点,蓝色!这个问题将在本教程的 DOM 课程中详细探讨,但是期望对象的开发人员通常会惊讶地发现在元素节点上调用`getNodeValue()`什么都不返回。有关真正面向对象的树,请参阅 [http://www.jdom.org](http://www.jdom.org) 上的 JDOM API。
**注**尽管它们被称为对象,但 DOM 树中的条目实际上是相当低级的数据结构。例如,考虑这种结构:`< color&gt; blue&lt; / color>` 。颜色标签有一个元素节点,在其下面有一个包含数据的文本节点,蓝色!这个问题将在本教程的 DOM 课程中详细探讨,但是期望对象的开发人员通常会惊讶地发现在元素节点上调用`getNodeValue()`什么都不返回。有关真正面向对象的树,请参阅 [http://www.jdom.org](http://www.jdom.org) 上的 JDOM API。
* * *
......
......@@ -6,7 +6,7 @@
* * *
**注 -** 简而言之,SAX 面向状态独立处理,其中元素的处理不依赖于之前的元素。另一方面,StAX 面向状态依赖处理。有关更详细的比较,请参阅[何时使用 SAX](when.html)
**注**简而言之,SAX 面向状态独立处理,其中元素的处理不依赖于之前的元素。另一方面,StAX 面向状态依赖处理。有关更详细的比较,请参阅[何时使用 SAX](when.html)
* * *
......
......@@ -6,7 +6,7 @@
* * *
**注 -** [JAXP 下载区](http://jaxp.java.net/downloads.html)下载并安装了 JAXP API 的源代码后,本示例的示例程序可在 _install-dir 目录中找到 _ `/ jaxp-1_4_2-` _ 释放日期 _ `/样例/ sax` 。与其交互的 XML 文件可在 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例/数据`中找到。
**注**[JAXP 下载区](http://jaxp.java.net/downloads.html)下载并安装了 JAXP API 的源代码后,本示例的示例程序可在 _install-dir 目录中找到 _ `/ jaxp-1_4_2-` _ 释放日期 _ `/样例/ sax` 。与其交互的 XML 文件可在 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例/数据`中找到。
* * *
......@@ -119,7 +119,7 @@ public class SAXLocalNameCount extends DefaultHandler {
* * *
**注 -** `DefaultHandler`也为`DTDHandler``EntityResolver``中定义的其他主要事件定义无操作方法 ErrorHandler`接口。您将在本课程后面了解有关这些方法的更多信息。
**注**`DefaultHandler`也为`DTDHandler``EntityResolver``中定义的其他主要事件定义无操作方法 ErrorHandler`接口。您将在本课程后面了解有关这些方法的更多信息。
* * *
......@@ -209,7 +209,7 @@ JAXP SAX API 还允许您使用`ContentHandler.characters()`方法处理解析
* * *
**注 -** 字符事件未在`SAXLocalNameCount`示例中演示,但为了完整性,本节中包含简要说明。
**注**字符事件未在`SAXLocalNameCount`示例中演示,但为了完整性,本节中包含简要说明。
* * *
......@@ -263,7 +263,7 @@ static public void main(String[] args) throws Exception {
* * *
**注 -** `javax.xml.parsers.SAXParser`类是一个定义了许多便捷方法的包装器。它包装(稍微不那么友好) `org.xml.sax.Parser`对象。如果需要,您可以使用`SAXParser`类的`getParser()`方法获取该解析器。
**注**:`javax.xml.parsers.SAXParser`类是一个定义了许多便捷方法的包装器。它包装(稍微不那么友好) `org.xml.sax.Parser`对象。如果需要,您可以使用`SAXParser`类的`getParser()`方法获取该解析器。
* * *
......@@ -348,7 +348,7 @@ private static class MyErrorHandler implements ErrorHandler {
* * *
**注 -** 检查`org.xml.sax.helpers.DefaultHandler`中定义的错误处理方法可能很有帮助。你会看到`错误()`和`警告()`方法什么都不做,而`fatalError()`会抛出异常。当然,你总是可以覆盖`fatalError()`方法来抛出不同的异常。但是如果您的代码在发生致命错误时没有抛出异常,那么 SAX 解析器将会。 XML 规范需要它。
**注**:检查`org.xml.sax.helpers.DefaultHandler`中定义的错误处理方法可能很有帮助。你会看到`错误()`和`警告()`方法什么都不做,而`fatalError()`会抛出异常。当然,你总是可以覆盖`fatalError()`方法来抛出不同的异常。但是如果您的代码在发生致命错误时没有抛出异常,那么 SAX 解析器将会。 XML 规范需要它。
* * *
......
......@@ -95,7 +95,7 @@ static public void main(String[] args) throws Exception {
* * *
**注 -** 有多种模式定义语言,包括 RELAX NG,Schematron 和 W3C“XML Schema”标准。 (即使 DTD 有资格作为“模式”,但它是唯一不使用 XML 语法来描述模式约束的模式。)但是,“XML 模式”向我们提出了术语挑战。尽管短语“XML Schema schema”是准确的,但我们将使用短语“XML Schema definition”来避免出现冗余。
**注**有多种模式定义语言,包括 RELAX NG,Schematron 和 W3C“XML Schema”标准。 (即使 DTD 有资格作为“模式”,但它是唯一不使用 XML 语法来描述模式约束的模式。)但是,“XML 模式”向我们提出了术语挑战。尽管短语“XML Schema schema”是准确的,但我们将使用短语“XML Schema definition”来避免出现冗余。
* * *
......@@ -126,7 +126,7 @@ public class SAXLocalNameCount extends DefaultHandler {
* * *
**注 -** 解析器工厂必须配置为生成一个名称空间感知和验证的解析器。这在[配置工厂](#gcwtg)中显示。 [文档对象模型](../dom/index.html)中提供了有关命名空间的更多信息,但是现在,要了解模式验证是面向命名空间的过程。由于默认情况下 JAXP 兼容的解析器不支持名称空间,因此必须将架构验证的属性设置为有效。
**注**解析器工厂必须配置为生成一个名称空间感知和验证的解析器。这在[配置工厂](#gcwtg)中显示。 [文档对象模型](../dom/index.html)中提供了有关命名空间的更多信息,但是现在,要了解模式验证是面向命名空间的过程。由于默认情况下 JAXP 兼容的解析器不支持名称空间,因此必须将架构验证的属性设置为有效。
* * *
......@@ -170,7 +170,7 @@ if (xsdValidate) {
* * *
**注 -** 当应用程序指定要使用的模式时,它会覆盖文档中的任何模式声明。
**注**当应用程序指定要使用的模式时,它会覆盖文档中的任何模式声明。
* * *
......@@ -187,7 +187,7 @@ if (xsdValidate) {
* * *
**注 -** 有关命名空间的更多信息包含在[文档对象模型](../dom/index.html)中的 XML Schema 验证中。现在,将这些属性视为用于验证不使用它们的简单 XML 文件的“神奇咒语”。在了解了有关命名空间的更多信息之后,您将了解如何使用 XML Schema 来验证使用它们的复杂文档。在[文档对象模型](../dom/index.html)中的“使用多个命名空间验证”中讨论了这些想法。
**注**有关命名空间的更多信息包含在[文档对象模型](../dom/index.html)中的 XML Schema 验证中。现在,将这些属性视为用于验证不使用它们的简单 XML 文件的“神奇咒语”。在了解了有关命名空间的更多信息之后,您将了解如何使用 XML Schema 来验证使用它们的复杂文档。在[文档对象模型](../dom/index.html)中的“使用多个命名空间验证”中讨论了这些想法。
* * *
......@@ -288,7 +288,7 @@ XML 规范建议应该由于以下原因生成警告:
* * *
**注 -** 该消息由 JAXP 1.4.2 库生成。如果您使用的是其他解析器,则错误消息可能会有所不同。
**注**:该消息由 JAXP 1.4.2 库生成。如果您使用的是其他解析器,则错误消息可能会有所不同。
* * *
......
......@@ -14,7 +14,7 @@
* * *
**注 -** 词法事件处理是一个可选的解析器功能。解析器实现不需要支持它。 (参考实现会这样做。)本讨论假定您的解析器这样做。
**注**词法事件处理是一个可选的解析器功能。解析器实现不需要支持它。 (参考实现会这样做。)本讨论假定您的解析器这样做。
* * *
......
......@@ -26,7 +26,7 @@
* * *
**注 -** `DTDHandler`接口由`DefaultHandler`类实现。
**注**`DTDHandler`接口由`DefaultHandler`类实现。
* * *
......
......@@ -48,7 +48,7 @@ ELEMENT: sentence
* * *
**注 -** DOM 节点 API 定义`nodeValue()``nodeType()``nodeName()`方法。对于第一个元素节点, `nodeName()`返回`句子`,而`nodeValue()`返回 null。对于第一个文本节点, `nodeName()`返回`#text``nodeValue()`返回“`这是`”。重要的是元素的**值****含量**不同。
**注**DOM 节点 API 定义`nodeValue()``nodeType()``nodeName()`方法。对于第一个元素节点, `nodeName()`返回`句子`,而`nodeValue()`返回 null。对于第一个文本节点, `nodeName()`返回`#text``nodeValue()`返回“`这是`”。重要的是元素的**值****含量**不同。
* * *
......@@ -80,7 +80,7 @@ ELEMENT: sentence
* * *
**注 -** 对于非常简单的 XML 数据结构,您也可以使用版本 1.4 中 Java 平台内置的 regular-expression 包( `java.util.regex` )。
**注**对于非常简单的 XML 数据结构,您也可以使用版本 1.4 中 Java 平台内置的 regular-expression 包( `java.util.regex` )。
* * *
......
......@@ -6,7 +6,7 @@
* * *
**注 -** [可扩展样式表语言转换](../xslt/index.html)中,您将看到如何将 DOM 写为 XML 文件。 (您还将看到如何相对轻松地将现有数据文件转换为 XML。)
**注**[可扩展样式表语言转换](../xslt/index.html)中,您将看到如何将 DOM 写为 XML 文件。 (您还将看到如何相对轻松地将现有数据文件转换为 XML。)
* * *
......@@ -221,7 +221,7 @@ public static void main(String[] args) throws Exception {
* * *
**注 -** 符合 JAXP 的解析器不需要支持这些选项的所有组合,即使引用解析器也是如此。如果指定了无效的选项组合,则当您尝试获取解析器实例时,工厂会生成`ParserConfigurationException`
**注**符合 JAXP 的解析器不需要支持这些选项的所有组合,即使引用解析器也是如此。如果指定了无效的选项组合,则当您尝试获取解析器实例时,工厂会生成`ParserConfigurationException`
* * *
......@@ -480,7 +480,7 @@ public static void main(String[] args) throws Exception {
* * *
**注 -** 文本节点在 DOM 中的元素节点下存在**,数据始终存储在文本节点中。也许 DOM 处理中最常见的错误是导航到元素节点并期望它包含存储在该元素中的数据。不是这样!即使最简单的元素节点下面也有一个包含数据的文本节点。**
**注**文本节点在 DOM 中的元素节点下存在**,数据始终存储在文本节点中。也许 DOM 处理中最常见的错误是导航到元素节点并期望它包含存储在该元素中的数据。不是这样!即使最简单的元素节点下面也有一个包含数据的文本节点。**
* * *
......
......@@ -58,7 +58,7 @@ if (xsdValidate) {
* * *
**注 -** 当应用程序指定要使用的模式时,它会覆盖文档中的任何模式声明。
**注**当应用程序指定要使用的模式时,它会覆盖文档中的任何模式声明。
* * *
......@@ -95,7 +95,7 @@ if (schemaSource != null) {
* * *
**注 -** 本节中讨论的内容也适用于使用 SAX 解析器时的验证。你在这里看到它,因为在这一点上,你已经学习了足够的关于名称空间的讨论是有意义的。
**注**本节中讨论的内容也适用于使用 SAX 解析器时的验证。你在这里看到它,因为在这一点上,你已经学习了足够的关于名称空间的讨论是有意义的。
* * *
......@@ -122,7 +122,7 @@ if (schemaSource != null) {
* * *
**注 -** 默认命名空间实际上是一个特定的命名空间。它被定义为“没有名称的命名空间”。因此,您不能简单地在本周使用一个命名空间作为默认名称,而在以后使用另一个名称空间作为默这个“未命名的命名空间”(或“null 命名空间”)就像数字零。它没有任何价值可言(没有名字),但它仍然是精确定义的。因此,具有名称的命名空间永远不能用作默认命名空间。
**注**默认命名空间实际上是一个特定的命名空间。它被定义为“没有名称的命名空间”。因此,您不能简单地在本周使用一个命名空间作为默认名称,而在以后使用另一个名称空间作为默这个“未命名的命名空间”(或“null 命名空间”)就像数字零。它没有任何价值可言(没有名字),但它仍然是精确定义的。因此,具有名称的命名空间永远不能用作默认命名空间。
* * *
......
......@@ -71,7 +71,7 @@ XML 文档是树状结构(分层)节点集合。与分层目录结构一样
* * *
**注 -** 在 XHTML 中,所有元素名称都是小写的。这是 XML 文档的一个相当常见的约定。但是,在像这样的教程中,大写名称更容易阅读。因此,对于 XSLT 课程的其余部分,所有 XML 元素名称都将为大写。 (另一方面,属性名称将保持小写)。
**注**在 XHTML 中,所有元素名称都是小写的。这是 XML 文档的一个相当常见的约定。但是,在像这样的教程中,大写名称更容易阅读。因此,对于 XSLT 课程的其余部分,所有 XML 元素名称都将为大写。 (另一方面,属性名称将保持小写)。
* * *
......@@ -79,7 +79,7 @@ XPath 表达式中指定的名称是指元素。例如, `/ h1 / h2`中的`h1`
* * *
**注 -** 因为表达式不是以`/`开头,所以引用指定了相对于当前上下文的列表节点 - 文档中的任何位置。
**注**因为表达式不是以`/`开头,所以引用指定了相对于当前上下文的列表节点 - 文档中的任何位置。
* * *
......@@ -111,7 +111,7 @@ XPath 规范定义了相当多的寻址机制,它们可以以多种不同的
* * *
**注 -** [XPath 规范](http://www.w3.org/TR/xpath/)的第 2.5 节列出了更多地址运算符组合。这可以说是定义 XSLT 转换的规范中最有用的部分。
**注**[XPath 规范](http://www.w3.org/TR/xpath/)的第 2.5 节列出了更多地址运算符组合。这可以说是定义 XSLT 转换的规范中最有用的部分。
* * *
......@@ -167,7 +167,7 @@ XPath 表达式产生一组节点,一个字符串,一个布尔值(一个
* * *
**注 -** 运算符优先级是一个回答问题的术语,“如果你指定一个+ b * c,那是指(a + b)* c 还是+(b * c)?” (运算符优先级与表中显示的大致相同)。
**注**运算符优先级是一个回答问题的术语,“如果你指定一个+ b * c,那是指(a + b)* c 还是+(b * c)?” (运算符优先级与表中显示的大致相同)。
* * *
......@@ -238,7 +238,7 @@ XPath 表达式产生一组节点,一个字符串,一个布尔值(一个
* * *
**注 -** XPath 定义了三种获取元素文本的方法: `text()``string(object)`,以及元素隐含的字符串值在这样的表达式中的名称: `/ PROJECT [PERSON =“Fred”]`
**注**XPath 定义了三种获取元素文本的方法: `text()``string(object)`,以及元素隐含的字符串值在这样的表达式中的名称: `/ PROJECT [PERSON =“Fred”]`
* * *
......
......@@ -56,7 +56,7 @@ objectclass: person
* * *
**注 -** 本节讨论的代码位于`AddressBookReader01.java`中,解压缩 [`XSLT examples`](../examples/xslt_samples.zip) 后可在`xslt`目录中找到]进入 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例`目录。
**注**本节讨论的代码位于`AddressBookReader01.java`中,解压缩 [`XSLT examples`](../examples/xslt_samples.zip) 后可在`xslt`目录中找到]进入 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例`目录。
* * *
......@@ -202,7 +202,7 @@ public class AddressBookReader01 {
* * *
**注 -** 本节讨论的代码位于`AddressBookReader02.java`中,解压缩 [`XSLT examples`](../examples/xslt_samples.zip) 后可在`xslt`目录中找到]进入 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例`目录。 `AddressBookReader02.java`改编自`AddressBookReader01.java` ,因此这里仅讨论两个示例之间的代码差异。
**注**本节讨论的代码位于`AddressBookReader02.java`中,解压缩 [`XSLT examples`](../examples/xslt_samples.zip) 后可在`xslt`目录中找到]进入 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例`目录。 `AddressBookReader02.java`改编自`AddressBookReader01.java` ,因此这里仅讨论两个示例之间的代码差异。
* * *
......@@ -268,7 +268,7 @@ try {
* * *
**注 -** 下一节将介绍如何创建输入源对象,放入其中的内容实际上是一个缓冲读取器。但`AddressBookReader`可能被其他人使用,在某个地方。无论您获得何种读者,此步骤都可确保处理效率。
**注**下一节将介绍如何创建输入源对象,放入其中的内容实际上是一个缓冲读取器。但`AddressBookReader`可能被其他人使用,在某个地方。无论您获得何种读者,此步骤都可确保处理效率。
* * *
......@@ -348,7 +348,7 @@ void output(String name, String prefix, String line)
* * *
**注 -** 缩进字符串对数据没有影响,但会使输出更容易阅读。没有该字符串,所有元素将端到端连接:
**注**缩进字符串对数据没有影响,但会使输出更容易阅读。没有该字符串,所有元素将端到端连接:
```java
<addressbook>
......@@ -433,7 +433,7 @@ public boolean getFeature(String name) { return false; }
* * *
**注 -** 注意:本节讨论的代码位于`TransformationApp03.java`中,解压缩 [`XSLT examples`后可在`xslt`目录中找到](../examples/xslt_samples.zip)进入 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例`目录。
**注**注意:本节讨论的代码位于`TransformationApp03.java`中,解压缩 [`XSLT examples`后可在`xslt`目录中找到](../examples/xslt_samples.zip)进入 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例`目录。
* * *
......
......@@ -8,7 +8,7 @@
* * *
**注 -** [XSLT 规范](http://www.w3.org/TR/xslt20/)庞大而复杂,因此本教程只能划伤表面。它将为您提供一些背景知识,以便您可以理解简单的 XSLT 处理任务,但它没有详细研究如何编写 XSLT 转换,而是专注于如何使用 JAXP 的 XSLT 转换 API。有关 XSLT 的更全面基础,请参考一本好的参考手册,例如 Michael Kay 的 _XSLT 2.0 和 XPath 2.0:程序员参考 _(Wrox,2008)。
**注**[XSLT 规范](http://www.w3.org/TR/xslt20/)庞大而复杂,因此本教程只能划伤表面。它将为您提供一些背景知识,以便您可以理解简单的 XSLT 处理任务,但它没有详细研究如何编写 XSLT 转换,而是专注于如何使用 JAXP 的 XSLT 转换 API。有关 XSLT 的更全面基础,请参考一本好的参考手册,例如 Michael Kay 的 _XSLT 2.0 和 XPath 2.0:程序员参考 _(Wrox,2008)。
* * *
......@@ -34,7 +34,7 @@
* * *
**注 -** 这种结构不容易验证,因为 XML 的混合内容模型允许文本中任何地方的文本,而我们想要限制文本和内联元素,使它们只出现在第一个结构元素之前部分的主体。基于断言的验证器可以做到这一点,但大多数其他架构机制都不能。因此,我们将不再为文档类型定义 DTD。
**注**这种结构不容易验证,因为 XML 的混合内容模型允许文本中任何地方的文本,而我们想要限制文本和内联元素,使它们只出现在第一个结构元素之前部分的主体。基于断言的验证器可以做到这一点,但大多数其他架构机制都不能。因此,我们将不再为文档类型定义 DTD。
* * *
......@@ -66,7 +66,7 @@
* * *
**注 -** 虽然文章结构非常简单(仅包含 11 个标签),但它提出了足够有趣的问题,让我们能够很好地了解 XSLT 的基本功能。但是我们仍然会保持规范的大部分区域不受影响。在 [XSLT 还能做什么?](#ggyut) ,我们将指出我们跳过的主要功能。
**注**虽然文章结构非常简单(仅包含 11 个标签),但它提出了足够有趣的问题,让我们能够很好地了解 XSLT 的基本功能。但是我们仍然会保持规范的大部分区域不受影响。在 [XSLT 还能做什么?](#ggyut) ,我们将指出我们跳过的主要功能。
* * *
......@@ -115,7 +115,7 @@
* * *
**注 -** 目前,存在树状结构编辑器,但它们处理内联标签,例如`< B&gt;。``< I>`与处理结构标签的方式相同,这可能使“轮廓”有点难以阅读。
**注**目前,存在树状结构编辑器,但它们处理内联标签,例如`< B&gt;。``< I>`与处理结构标签的方式相同,这可能使“轮廓”有点难以阅读。
* * *
......@@ -125,7 +125,7 @@
* * *
**注 -** 本节讨论的代码在`article1a.xsl`中,在解压缩 [`XSLT examples`后可在`xslt / data`目录中找到](../examples/xslt_samples.zip)进入 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例`目录。
**注**本节讨论的代码在`article1a.xsl`中,在解压缩 [`XSLT examples`后可在`xslt / data`目录中找到](../examples/xslt_samples.zip)进入 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例`目录。
* * *
......@@ -169,7 +169,7 @@
* * *
**注 -** 指定 XML 输出时,可以添加 indent 属性以生成良好缩进的 XML 输出。规范如下所示:`< xsl:output method =“xml”indent =“yes”/>`
**注**指定 XML 输出时,可以添加 indent 属性以生成良好缩进的 XML 输出。规范如下所示:`< xsl:output method =“xml”indent =“yes”/>`
* * *
......@@ -179,7 +179,7 @@
* * *
**注 -** 如果您在第一次阅读时跳过了讨论 XPath 寻址机制的部分, [XPath 如何工作](xpath.html),现在是回顾和审查该部分的好时机。
**注**如果您在第一次阅读时跳过了讨论 XPath 寻址机制的部分, [XPath 如何工作](xpath.html),现在是回顾和审查该部分的好时机。
* * *
......@@ -204,7 +204,7 @@
* * *
**注 -** 当不存在换行符时,通常会忽略空格。要在这种情况下在输出中包含空格,或者要包含其他文本,可以使用`< xsl:text>`标签。基本上,XSLT 样式表需要处理标记。所以它看到的一切都需要是`< xsl:..>`标签,其他一些标签或空格。
**注**当不存在换行符时,通常会忽略空格。要在这种情况下在输出中包含空格,或者要包含其他文本,可以使用`< xsl:text>`标签。基本上,XSLT 样式表需要处理标记。所以它看到的一切都需要是`< xsl:..>`标签,其他一些标签或空格。
* * *
......@@ -281,7 +281,7 @@ XSLT 的工作原理是将源树转换为结果树。为了可视化 XSLT 操作
* * *
**注 -** 我们可以通过用表达式`/ SECT / SECT // SECT`选择它们来继续处理进一步向下的`SECT`元素。 `//`选择任何深度的任何`SECT`元素,如 XPath 寻址机制所定义。但相反,我们将借此机会发布消息。
**注**我们可以通过用表达式`/ SECT / SECT // SECT`选择它们来继续处理进一步向下的`SECT`元素。 `//`选择任何深度的任何`SECT`元素,如 XPath 寻址机制所定义。但相反,我们将借此机会发布消息。
* * *
......@@ -357,7 +357,7 @@ public class Stylizer {
* * *
**注 -** 你可以通过消除`DOMSource`类来简化代码。而不是为 XML 文件创建`DOMSource`对象,为它创建`StreamSource`对象,以及样式表。
**注**你可以通过消除`DOMSource`类来简化代码。而不是为 XML 文件创建`DOMSource`对象,为它创建`StreamSource`对象,以及样式表。
* * *
......@@ -423,7 +423,7 @@ public class Stylizer {
* * *
**注 -** 本节讨论的样式表在`article1b.xsl`中,在解压缩 [`XSLT examples`后可在`xslt / data`目录中找到](../examples/xslt_samples.zip)进入 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例`目录。结果是`stylizer1b.html` ,见于`xslt / data`
**注**本节讨论的样式表在`article1b.xsl`中,在解压缩 [`XSLT examples`后可在`xslt / data`目录中找到](../examples/xslt_samples.zip)进入 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例`目录。结果是`stylizer1b.html` ,见于`xslt / data`
* * *
......@@ -511,7 +511,7 @@ public class Stylizer {
* * *
**注 -** 本节讨论的样式表在`article1c.xsl`中,在解压缩 [`XSLT examples`后可在`xslt / data`目录中找到](../examples/xslt_samples.zip)进入 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例`目录。结果是`stylizer1c.html` ,见于`xslt / data`
**注**本节讨论的样式表在`article1c.xsl`中,在解压缩 [`XSLT examples`后可在`xslt / data`目录中找到](../examples/xslt_samples.zip)进入 _install-dir_ `/ jaxp-1_4_2-` _ 发布日期 _ `/样例`目录。结果是`stylizer1c.html` ,见于`xslt / data`
* * *
......@@ -602,7 +602,7 @@ public class Stylizer {
* * *
**注 -** 本节中描述的示例文档是`article2.xml` ,用于操作它的样式表是`article2.xsl` 。结果是`stylizer2.html` 。将 [`XSLT examples`](../examples/xslt_samples.zip) 解压缩到 _install-dir_ `/ jaxp-1_4_2-`后,可以在`xslt / data`目录中找到这些文件 _ 发布日期 _ `/样例`目录。
**注**本节中描述的示例文档是`article2.xml` ,用于操作它的样式表是`article2.xsl` 。结果是`stylizer2.html` 。将 [`XSLT examples`](../examples/xslt_samples.zip) 解压缩到 _install-dir_ `/ jaxp-1_4_2-`后,可以在`xslt / data`目录中找到这些文件 _ 发布日期 _ `/样例`目录。
* * *
......@@ -636,7 +636,7 @@ public class Stylizer {
* * *
**注 -** 尽管 XML 文件中的`列表``注意`包含在它们各自的段落中,但它们是否包含在内并没有区别;生成的 HTML 将以相同的方式相同。但是将它们包含在内会使它们更容易在面向轮廓的编辑器中处理。
**注**尽管 XML 文件中的`列表``注意`包含在它们各自的段落中,但它们是否包含在内并没有区别;生成的 HTML 将以相同的方式相同。但是将它们包含在内会使它们更容易在面向轮廓的编辑器中处理。
* * *
......@@ -751,7 +751,7 @@ col
* * *
**注 -** 如果你真的想要`<`作为 HTML 输出的一部分生成,您需要将其编码为`&amp; lt;` 。该序列变为`<`关于输出,因为只有`&amp;`转换为`&amp;`字符。
**注**如果你真的想要`<`作为 HTML 输出的一部分生成,您需要将其编码为`&amp; lt;` 。该序列变为`<`关于输出,因为只有`&amp;`转换为`&amp;`字符。
* * *
......@@ -818,7 +818,7 @@ col
* * *
**注 -** 本节中描述的示例文档是`article3.xml` ,用于操作它的样式表是`article3.xsl` 。结果是`stylizer3.html`
**注**本节中描述的示例文档是`article3.xml` ,用于操作它的样式表是`article3.xsl` 。结果是`stylizer3.html`
* * *
......@@ -893,7 +893,7 @@ col
* * *
**注 -** 您还可以使用`< xsl:attribute&gt;生成属性。` 。有关更多信息,请参阅 XSLT 规范的 7.1.3 节。
**注**您还可以使用`< xsl:attribute&gt;生成属性。` 。有关更多信息,请参阅 XSLT 规范的 7.1.3 节。
* * *
......@@ -919,7 +919,7 @@ col
* * *
**注 -** 回想一下引号中的条目被解释为表达式,除非它进一步用单引号括起来。这就是为什么在`“@ type ='ordered'”`中需要单引号以确保有序被解释为字符串。
**注**回想一下引号中的条目被解释为表达式,除非它进一步用单引号括起来。这就是为什么在`“@ type ='ordered'”`中需要单引号以确保有序被解释为字符串。
* * *
......@@ -973,7 +973,7 @@ col
* * *
**注 -** 只是为了明确:参数和变量(在[中稍后讨论过 XSLT 可以做什么?](#ggyut)可以通过 select 子句指定它们的值,允许您使用 XPath 表达式,或者使用元素的内容,这样可以使用 XSLT 标记。
**注**只是为了明确:参数和变量(在[中稍后讨论过 XSLT 可以做什么?](#ggyut)可以通过 select 子句指定它们的值,允许您使用 XPath 表达式,或者使用元素的内容,这样可以使用 XSLT 标记。
* * *
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册