在 Dreamweaver 中执行服务器端 XSL 转换

优质
小牛编辑
156浏览
2023-12-01
了解如何在 Dreamweaver 中执行服务器端 XSL 转换。创建 XSLT 页面并将 HTML 转换为 XSLT 页面。

注意:用户界面已经在 Dreamweaver CC 和更高版本中做了简化。因此,您可能在 Dreamweaver CC 和更高版本中找不到本文中描述的一些选项。有关详细信息,请参阅此文章。

执行服务器端 XSL 转换的工作流程

可在服务器上执行服务器端 XSL 转换。构建显示 XML 数据的页面之前,请先阅读有关服务器端和客户端 XSL 转换和将 XML 和 XSL 用于网页的相应信息。

注意:必须正确配置服务器才能执行服务器端转换。有关详细信息,请与您的服务器管理员联系。

执行服务器端 XSL 转换的常规工作流程如下(在其它主题对每个步骤分别进行了说明):

1. 设置 Dreamweaver 站点。

2. 选择服务器技术并设置应用程序服务器。

3. 测试应用程序服务器。

例如,创建一个需要处理的页面,然后确保应用程序服务器能处理该页面。

4. 创建 XSLT 片断或页面,或将 HTML 页面转换为 XSLT 页面。

  • 在 Dreamweaver 站点上创建一个 XSLT 片断或整个 XSLT 页面。
  • 将现有 HTML 页面转换为整个 XSLT 页面。

5. 将 XML 数据源附加到页面。

6. 通过将 XML 数据绑定到 XSLT 片断或整个 XSLT 页面来显示 XML 数据。

7. 如果适用,将重复区域 XSLT 对象添加到包含 XML 数据占位符的表格或表格行。

8. 插入引用。

  • 要将对 XSLT 片断的引用插入到动态页面中,请使用 XSL 转换服务器行为。
  • 要将对整个 XSLT 页面的引用插入到动态页面中,请从动态页面删除所有 HTML 代码,然后使用 XSL 转换服务器行为。

9. 发布页面和片断。

将动态页和 XSLT 片断(或整个 XSLT 页面)发布到应用程序服务器。如果正在使用本地 XML 文件,则还需要发布该文件。

10. 在浏览器中查看动态页。

执行此操作时,应用程序服务器会转换 XML 数据,将数据插入动态页,然后在浏览器中显示数据。

创建 XSLT 页面

可以创建在网页上显示 XML 数据的 XSLT 页面。您可以创建整个 XSLT 页面,该 XSLT 页面包含一个 <body> 标签和一个 <head> 标签,也可以创建 XSLT 片断。创建 XSLT 片断时,将创建一个独立的文件,其中不包含任何 body 或 head 标签,它只是稍后要插入在动态页中的一段简单代码。

注意:如果从现有 XSLT 页面入手,则需要将 XML 数据源附加到该现有页面。

  1. 选择“文件”>“新建”。
  2. 在“新建文档”对话框的“空白页”类别中,从“页面类型”列选择以下类型之一:
    • 选择 XSLT(整页)创建整个 XSLT 页。
    • 选择 XSLT(片断)创建 XSLT 片断。
  3. 单击“创建”,然后在“定位 XML 源”对话框中执行以下操作之一:
    • 选择“附加本地文件”,单击“浏览”按钮,浏览至计算机上的本地 XML 文件,然后单击“确定”。
    • 选择“附加远端文件”,输入 Internet 上某个 XML 文件(如来自 RSS 源)的 URL,然后单击“确定”。

    注意:单击“取消”按钮将生成一个新的 XSLT 页面,页面中没有附加的 XML 数据源。

    “绑定”面板由 XML 数据源的架构填充

    “绑定”面板

    下表说明了架构中可能出现的各种元素:

    元素

    表示

    详细信息

    <>

    必需的非重复性 XML 元素

    在其父节点中刚好出现一次的元素

    <>+

    重复的 XML 元素

    在其父节点中出现一次或多次的元素

    <>+

    可选 XML 元素

    在其父节点中出现零次或多次的元素

    粗体的元素节点

    当前上下文元素

    当插入点在重复区域中时,通常为重复元素

    @

    XML 属性

     

     

  4. 以 .xsl 或 .xslt 扩展名(.xsl 是默认值)保存新页面(“文件”>“保存”)。

将 HTML 页面转换为 XSLT 页面

还可以将现有 HTML 页面转换为 XSLT 页面。例如,如果您拥有一个要将 XML 数据添加到其中的预先设计好的静态页面,则可以将该页面转换为 XSLT 页面,而不是创建一个 XSLT 页面并从头开始重新设计页面。

  1. 打开要转换的 HTML 页面。
  2. 选择“文件”>“转换”>“XSLT 1.0”。

    将在“文档”窗口中打开页面的副本。新页面是以 .xsl 扩展名保存的 XSL 样式表。

附加 XML 数据源

如果从现有 XSLT 页面入手,或者在使用 Dreamweaver 创建新 XSLT 页面时没有附加 XML 数据源,则需要使用“绑定”面板附加 XML 数据源。

  1. 在“绑定”面板(“窗口”>“绑定”)中,单击该 XML 链接。在“绑定”面板中单击“XML”

    注意:您还可以单击“绑定”面板右上角的“源”链接,添加 XML 数据源。

  2. 执行下列操作之一:
    • 选择“附加本地文件”,单击“浏览”按钮,浏览至计算机上的本地 XML 文件,然后单击“确定”。
    • 选择“附加远端文件”,然后输入 Internet 上某个 XML 文件(如来自 RSS 源的文件)的 URL。
  3. 单击“确定”,关闭“定位 XML 源”对话框。

    “绑定”面板由 XML 数据源的架构填充。

在 XSLT 页面中显示 XML 数据

创建 XSLT 页面并附加 XML 数据源后,就可以将数据绑定到页面了。为此,将 XML 数据占位符添加到页面并使用 XPath 表达式创建器或“属性”检查器来设置页面上将显示的选定数据的格式。

  1. 打开带有附加的 XML 数据源的 XSLT 页面。
  2. (可选)选择“插入”>“表格”,向页面添加表格。表格有助于您组织 XML 数据。

    注意:大多数情况下,使用重复区域 XSLT 对象在页面上显示重复 XML 元素。这时,您可能希望创建具有一列或多列的单行表格,如果希望包含表格标题,则创建由两行组成的表格。

  3. 在“绑定”面板中选择一个 XML 元素,将它拖动到页面上要插入数据的位置。在“绑定”面板中选择 XML 元素

    页面上即显示一个 XML 数据占位符。该占位符突出显示在花括号中。它使用 XPath(XML 路径语言)语法描述 XML 架构的层次结构。例如,如果将子元素 title 拖到页面上,而该元素具有 rsschannelitem 这些父元素,则动态内容占位符的语法是 {rss/channel/item/title}。

    双击页面上的 XML 数据占位符以打开 XPath 表达式创建器。您可以使用 XPath 表达式创建器设置选定数据的格式,或从 XML 架构中选择其它项目。

  4. (可选)将样式应用于 XML 数据,方法是选择 XML 数据占位符,与将样式应用于内容的任何其它部分一样,使用“属性”检查器或“CSS 样式”面板对该数据占位符应用样式。或者,可以使用设计时样式表将样式应用于 XSLT 片断。以上这些方法各有其自己的优点和局限性。
  5. 在浏览器(“文件”>“在浏览器中预览”)中进行预览。

    注意:使用“在浏览器中预览”预览工作时,Dreamweaver 执行内部 XSL 转换而不使用应用程序服务器。

显示重复 XML 元素

重复区域 XSLT 对象允许在网页中显示来自 XML 数据源的重复元素。例如,如果要显示新闻源的文章标题和说明,而该新闻源包含十至二十篇文章,则 XML 文件中的每一个标题和说明都很可能是重复元素的一个子元素。

“设计”视图中包含 XML 数据占位符的任何区域都可以更改为重复区域。但最常见的区域是表格、表格行或一系列表格行。

  1. 在“设计”视图中,选择包含一个或多个 XML 数据占位符的区域。

    可以选定任意内容,包括表格、表格行甚至一段文本。

    设计视图

    注意:若要精确选择页面上的区域,可以使用“文档”窗口左下角的标签选择器。例如,如果区域是表格,则在页面上单击表格内部,然后在标签选择器中单击该标签。

  2. 执行下列操作之一:
    • 选择“插入”>“XSLT 对象”>“重复区域”。
    • 在“插入”面板的“XSLT”类别中,单击“重复区域”按钮。
  3. 在 XPath 表达式创建器中,选择以小加号标明的重复元素。XPath 表达式创建器
  4. 单击“确定”。

    在“文档”窗口中,重复的区域周围会出现一个灰色的选项卡式细轮廓。在浏览器(“文件”>“在浏览器中预览”)中进行预览时,该灰色轮廓消失且所选内容扩展,以显示 XML 文件中的指定重复元素。

    向页面添加重复区域 XSLT 对象时,“文档”窗口中的 XML 数据占位符将被截短。这是因为 Dreamweaver 截短了 XML 数据占位符的 XPath,使它成了一个相对于重复元素路径的路径。

设置重复区域 (XSL) 属性

在属性检查器中,您可以选择一个不同的 XML 节点来创建重复区域。

  1. 在“选择”文本框中,输入新节点,然后按闪电图标并从出现的 XML 架构树中选择节点。

编辑重复区域 XSLT 对象

将重复区域 XSLT 对象添加到区域之后,可使用属性检查器编辑该对象。

  1. 通过单击重复区域周围的灰色标签选择该对象。
  2. 在“属性”检查器(“窗口”>“属性”)中,单击“选择”文本字段旁的动态图标。
  3. 在 XPath 表达式创建器中进行更改,然后单击“确定”。

在动态页中插入 XSLT 片断

创建 XSLT 片断之后,可以使用 XSL 转换服务器行为将它插入动态网页。将服务器行为添加至页面并在浏览器中查看页面时,应用程序服务器执行转换,该转换显示所选的 XSLT 片断的 XML 数据。Dreamweaver 支持对 ColdFusion、ASP 或 PHP 页面执行 XSL 转换。

注意:如果想要在动态页中插入整个 XSLT 页面的内容,过程完全相同。在使用 XSL 转换服务器行为插入整个 XSLT 页面之前,请删除动态页中的所有 HTML 代码。

  1. 打开一个现有的 ColdFusion、ASP 或 PHP 页面。
  2. 在“设计”视图中,将插入点放置在要插入 XSLT 片断的位置。

    注意:插入 XSLT 片断时,在页面上放置插入点后应始终单击“显示“代码”视图和“设计”视图”按钮,以确保插入点位于正确位置。如果插入点没有位于正确位置,则可能需要单击“代码”视图中的其它位置,以将插入点放到需要的位置。

  3. 在“服务器行为”面板(“窗口”>“服务器行为”)中,单击加号 (+) 按钮,然后选择“XSL 转换”。“服务器行为”面板
  4. 在“XSL 转换”对话框中,单击“浏览”按钮,浏览到 XSLT 片断或整个 XSLT 页面。

    Dreamweaver 使用附加到指定片断的 XML 文件的文件路径或 URL 填充下一个文本域。若要更改,请单击“浏览”按钮,浏览至其它文件。

  5. (可选)单击加号 (+) 按钮添加 XSLT 参数。
  6. 单击“确定”以将对 XSLT 片断的引用插入到页面中。该片断不可编辑。您可以双击该片断以打开片断的源文件进行编辑。

    Dreamweaver 还会在包含运行时库文件的站点根文件夹中创建一个 includes/MM_XSLTransform/ 文件夹。应用程序服务器使用该文件中定义的函数执行转换。

  7. 将动态页上传到服务器(“站点”>“上传”),并单击“是”以包含相关文件。包含 XSLT 片断的文件、包含您的数据的 XML 文件以及生成的运行时库文件都必须在服务器上,页面才能正确显示。(如果您选择远程 XML 文件作为数据源,则该文件必须位于 Internet 上的其它位置。)

从动态页删除 XSLT 片断

通过删除用于插入 XSLT 片断的 XSL 转换服务器行为,可以从页面删除该片断。删除服务器行为只删除该 XSLT 片断 -- 它不删除关联的 XML、XSLT 或运行时库文件。

  1. 在“服务器行为”面板(“窗口”>“服务器行为”)中,选择要删除的 XSL 转换服务器行为。
  2. 单击减号 (-) 按钮。

    注意:应始终以此方式删除服务器行为。手动删除生成的代码虽然会使服务器行为从“服务器行为”面板消失,但是仅删除部分服务器行为。

编辑 XSL 转换服务器行为

向动态网页添加 XSLT 片断之后,可以随时编辑 XSL 转换服务器行为。

  1. 在“服务器行为”面板(“窗口”>“服务器行为”)中,双击要编辑的 XSL 转换服务器行为。
  2. 进行更改并单击“确定”。

创建动态链接

可以在 XSLT 页面上创建一个动态链接,当用户单击您的 XML 数据中指定的一个或一组单词时,该动态链接将链接到特定的 URL。有关完整的说明,请参阅 Dreamweaver 勘误表,网址为 www.adobe.com/go/dw_documentation_cn。

将样式应用到 XSLT 片断

当您创建整个 XSLT 页面(也就是,包含 <body> 和 <head> 标签的 XSLT 页面)时,可以在页面上显示 XML 数据,然后与设置内容的任何其它部分的格式一样,使用“属性”检查器或“CSS 样式”面板设置数据的格式。但创建要插入到动态页面的 XSLT 片断(例如,要在 ASP、PHP 或 Cold Fusion 页面中插入的片断)时,片断和动态页中样式的呈现变得更加复杂。尽管您操作的 XSLT 片断独立于动态页,但要牢记,片断是设计用于动态页内部的,而 XSLT 片断的输出最终位于动态页的 <body> 标签内的某个位置。在采用此工作流程的情况下,应确保不在 XSLT 片段中包括 <head> 元素(例如,样式定义或者指向外部样式表的链接),这一点很重要。这样会导致应用程序服务器将这些元素放入动态页的 <body> 中,从而生成无效的标记。

例如,您可能希望创建一个要在动态页中插入的 XSLT 片断,并使用与动态页相同的外部样式表设置片断的格式。如果您将同一个样式表附加到片断,则所产生的 HTML 页面将包含重复的样式表链接(一个在动态页的 <head> 部分中,另一个在该页面的 <body> 部分中,XSLT 片断的内容将出现在这部分中。) 您应使用设计时样式表而不是此方法来引用外部样式表。

设置 XSLT 片断内容的格式时,请使用以下工作流程:

  • 首先,将外部样式表附加到动态页。(这是将样式应用于任何网页的内容的最佳做法)。
  • 其次,将同一外部样式表作为设计时样式表附加到 XSLT 片断。顾名思义,设计时样式表只在 Dreamweaver 的设计视图中有效。

    完成前两个步骤之后,可使用已附加到动态页上的同一样式表在 XSLT 片断中创建新样式。HTML 输出将更加清晰(因为对样式表的引用仅在 Dreamweaver 中使用时有效),片断仍在设计视图中显示相应的样式。另外,在“设计”视图中查看动态页或在浏览器中预览动态页时,所有样式都将应用于片断和动态页。

注意:如果在浏览器中预览 XSLT 片断,则浏览器将不显示样式。应改为在浏览器中预览动态页,以在动态页的上下文中查看 XSLT 片断。

使用参数进行 XSL 转换

将 XSL 转换服务器行为添加到网页时,可以定义 XSL 转换的参数。参数控制 XML 数据的处理和显示方式。例如,您可以使用参数来标识和列出新闻源的特定文章。页面加载浏览器时,只会显示使用该参数指定的文章。

向 XSL 转换添加 XSLT 参数

  1. 打开“XSL 转换”对话框。您可以通过在“服务器行为”面板(“窗口”>“服务器行为”)中双击某个 XSL 转换服务器行为,或通过添加一个新的 XSL 转换服务器行为来执行此操作。
  2. 在“XSL 转换”对话框中,单击 XSLT 参数旁的加号 (+) 按钮。“XSL 转换”对话框
  3. 在“添加参数”对话框的“名称”框中,输入参数的名称。该名称只能包含字母数字字符。不能包含空格。
  4. 执行下列操作之一:
    • 如果要使用静态值,请在“值”框中输入它。
    • 如果要使用动态值,请单击“值”框旁的动态图标,完成“动态数据”对话框,然后单击“确定”。有关详细信息,请单击“动态数据”对话框中的“帮助”按钮。
  5. 请在“默认值”框中输入页面未接收到运行时值的时候希望参数使用的值,并单击“确定”。

编辑 XSLT 参数

  1. 打开“XSL 转换”对话框。您可以通过在“服务器行为”面板(“窗口”>“服务器行为”)中双击某个 XSL 转换服务器行为,或通过添加一个新的 XSL 转换服务器行为来执行此操作。
  2. 从 XSLT 参数列表中选择参数。
  3. 单击“编辑”按钮。
  4. 进行更改并单击“确定”。

删除 XSLT 参数

  1. 打开“XSL 转换”对话框。您可以通过在“服务器行为”面板(“窗口”>“服务器行为”)中双击某个 XSL 转换服务器行为,或通过添加一个新的 XSL 转换服务器行为来执行此操作。
  2. 从 XSLT 参数列表中选择参数。
  3. 单击减号 (-) 按钮。

创建并编辑条件 XSLT 区域

可在 XSLT 页面上创建简单条件区域或多条件区域。您可在“设计”视图中选择某个元素并对其应用条件区域,还可在文档中插入点所在的任意位置插入条件区域。

例如,如果不供应某物品,您要在该物品的价格旁显示“不供应”这个词,则可以在页面上键入“不供应”,选择该词,然后将条件区域应用于选择的文本。Dreamweaver 会使用标签 <xsl:if> 将所选内容括起来,但是仅当数据与条件表达式的条件相匹配时才在页面上显示“不供应”一词。

应用条件 XSLT 区域

您可编写一个简单的条件表达式并将它插入到 XSLT 页面中。打开“条件区域”对话框时如果选定了内容,则内容将包括在 <xsl:if> 块中。如果未选择内容,<xsl:if> 块将添加到页面中的插入点处。建议从使用此对话框入手,然后在“代码”视图中自定义表达式。

<xsl:if> 元素类似于其它语言中的 if 语句。此元素提供了一种方法,供您测试条件并根据结果采取一系列行动步骤。您可以使用 <xsl:if> 元素测试表达式以得出一个 true 或 false 值。

  1. 选择“插入”>“XSLT 对象”>“条件区域”或单击“插入”面板的“XLST”类别中的“条件区域”图标。
  2. 在“条件区域”对话框中,输入用于区域的条件表达式。

    下例将进行测试以查看上下文节点的 @available 属性值是否为 true。

    “条件区域”对话框
  3. 单击“确定”。

    以下代码将插入 XSLT 页面中:

    <xsl:if test="@available=&apos;true&apos;"> Content goes here </xsl:if>

    注意:您必须将字符串值(如 true)用引号引起来。Dreamweaver 会对引号 (&apos;) 进行编码,以便它们能够作为有效的 XHTML 输入。

    除了测试节点值外,您可以在任何条件语句中使用受支持的任何 XSLT 函数。为 XML 文件中的当前节点测试条件。下例将对结果集中的最后一个节点进行测试:

    测试结果集中的最后一个节点

    有关编写条件表达式的详细信息和示例,请参阅“参考”面板(“帮助”>“参考”)中的 <xsl:if> 部分。

应用多条件 XSLT 区域

您可编写一个简单的条件表达式并将它插入到 XSLT 页面中。打开“条件区域”对话框时如果选定了内容,则内容将包括在 <xsl:choose> 块中。如果您不选择内容,<xsl:choose> 块将添加到页面中的插入点处。建议从使用此对话框入手,然后在“代码”视图中自定义表达式。

<xsl:choose> 元素类似于其它语言中的 case 语句。此元素提供了一种方法,供您测试条件并根据结果采取一系列行动步骤。您可以使用 <xsl:choose> 元素对多个条件进行测试。

  1. 选择“插入”>“XSLT 对象”>“多条件区域”或单击“插入”面板的“XLST”类别中的“多条件区域”图标。
  2. 在“多条件区域”对话框中,输入第一个条件。

    下例将进行测试以查看上下文节点的 price 子元素是否小于 5。

    “多条件区域”对话框
  3. 单击“确定”。

    在此示例中,以下代码将插入 XSLT 页面中:

    <xsl:choose> <xsl:when test="price&lt;5"> Content goes here </xsl:when> <xsl:otherwise> Content goes here </xsl:otherwise> </xsl:choose>
  4. 若要插入另一个条件,请将插入点置于“代码”视图中的 <xsl:when> 标签对之间,或者就置于 <xsl:otherwise> 标签之前,然后插入条件区域(“插入”>“XSLT 对象”>“条件区域”)。

    在指定条件并单击“确定”后,将会有另一个 <xsl:when> 标签插入到 <xsl:choose> 块中。

    有关编写条件表达式的详细信息和示例,请参阅“参考”面板(“帮助”>“参考”)中的 <xsl:choose> 部分。

设置条件区域 (If) 属性

此“设置条件区域属性”检查器用于更改 XSL 页面条件区域中使用的条件。条件区域将测试条件并根据结果采取一系列操作步骤。

  1. 在“测试”框中,输入新条件,然后按 Enter。

设置条件 (When) 属性

此“设置条件区域属性”检查器用于更改 XSL 页面多条件区域中使用的条件。多条件区域将测试条件并根据结果采取一系列操作步骤。

  1. 在“测试”框中,输入新条件,然后按 Enter。

插入 XSL 注释

可以向文档添加 XSL 注释标签,或将所选内容括在 XSL 注释标签内。

向文档添加 XSL 注释标签

  1. 执行下列操作之一:
    • 在“设计”视图中,选择“插入”>“XSLT 对象”>“XSL 注释”,键入注释内容(或将文本框留空),然后单击“确定”。
    • 在“代码”视图中,选择“插入”>“XSLT 对象”>“XSL 注释”。

    注意:也可以单击“插入”面板的“XSLT”类别中的“XSL 注释”图标。

用 XSL 注释标签括起选定内容

  1. 切换到“代码”视图(“查看”>“代码”)。
  2. 选择要为其注释的代码。
  3. 在“编码”工具栏中,单击“应用注释”按钮,然后选择“应用 <xsl:comment></xsl:comment> 注释”。

使用 XPath 表达式创建器为 XML 数据添加表达式

Xpath(XML 路径语言)是一种非 XML 语法,用于确定 XML 文档各部分的位置。大多数情况下,Xpath 用作 XML 数据的查询语言,这与 SQL 语言用于查询数据库一样。有关 XPath 的详细信息,请参阅 W3C 网站上的 XPath 语言规范,网址为 www.w3.org/TR/xpath。

XPath 表达式创建器是 Dreamweaver 中的一个功能,您可以使用它构建简单的 XPath 表达式,以标识数据的特定节点和重复区域。使用此方法代替从 XML 架构树中拖动值的优点是您可以对显示的值设置格式。打开“XPath 表达式创建器”对话框时,根据 XSL 文件中插入点的位置确定当前上下文。在 XML 架构树中,当前上下文以粗体显示。在此对话框内进行选择时,将相对当前上下文生成正确的 XPath 语句。这为初学者和高级用户简化了编写正确 XPath 表达式的过程。

注意:此功能是用于帮助您生成简单的 XPath 表达式以标识特定节点或重复区域。它不允许您手动编辑表达式。如果需要创建复杂的表达式,请使用此 XPath 表达式创建器开始创建表达式,然后在“代码”视图中或通过“属性”检查器自定义表达式。

创建 XPath 表达式以标识特定节点

  1. 双击页面上的 XML 数据占位符以打开 XPath 表达式创建器。
  2. 在“XPath 表达式创建器(动态文本)”对话框中,选择 XML 架构树中的任何节点。

    在“表达式”框中填写正确的 XPath 表达式以标识节点。

    注意:如果选择 XML 架构树中的其它节点,表达式将会相应进行更改,以反映您的选择。

    下例将显示 item 节点的 price 子元素:

    “XPath 表达式创建器(动态文本)”对话框

    这一选择会将以下代码插入 XSLT 页面:

    <xsl:value-of select="price"/>
  3. (可选)从“格式”弹出菜单中选择格式设置选项。

    当节点值返回一个数字时,对所选内容设置格式非常有用。Dreamweaver 提供了预定义的格式设置函数列表。请查看“参考”面板以查看可用的格式设置功能和示例的完整列表。

    下例将把 price 子元素的格式设置为具有两个小数位的币种:

    将 price 子元素的格式设置为具有两个小数位的币种

    这些选项将在您的 XSLT 页面中插入以下代码:<xsl:value-of select="format-number(provider/store/items/item/price,'$#.00')"/>

    <xsl:value-of select="format-number(provider/store/items/item/price,'$#.00')"/>
  4. 单击“确定”。
  5. 若要显示 XML 文件中每个节点的值,请对包含动态文本的元素(例如 HTML 表格行或段落)应用重复区域。

    有关选择节点以返回值的更多信息和示例,请参见“参考”面板中的 <xsl:value-of/> 部分。

选择要重复的节点

可选择节点以重复和筛选(可选)结果。在“XPath 表达式创建器”对话框中,您所选的内容将会包含在 <xsl:for-each> 块中。如果您未选择内容,<xsl:for-each> 块将输入到光标所在的插入点处。

  1. 双击页面上的 XML 数据占位符以打开 XPath 表达式创建器。
  2. 在“XPath 表达式创建器(重复区域)”对话框中,选择要在 XML 架构树中重复的项目。

    在“表达式”框中填写正确的 XPath 表达式以标识节点。

    注意:重复的项目在 XML 架构树中以加号 (+) 标识。

    下例将重复 XML 文件中的每个 item 节点。

    “XPath 表达式创建器(重复区域)”对话框

    单击“确定”时,以下代码将插入 XSLT 页面中:

    <xsl:for-each select="provider/store/items/item">  Content goes here </xsl:for-each>

    在某些情况下,您可能需要处理重复节点的子集 -- 例如,您可能只需要属性具有特定值的项目。在此情况下,您需要创建过滤器。

筛选要重复的数据

使用过滤器标识具有特定属性值的重复节点。

  1. 在 XML 架构树中,选择要重复的节点。
  2. 单击“生成过滤器”扩展按钮。
  3. 单击加号 (+) 按钮创建空白过滤器。
  4. 在以下字段中输入筛选标准:

    筛选条件

    指定包含条件的数据的重复节点。弹出菜单提供了与 XML 架构树中所选节点相关的上级节点的列表。

    位置

    指定用于限定结果的“筛选条件”节点的属性或子元素。可从弹出菜单选择属性或子元素,或可在此字段中输入自己的 XPath 表达式,以标识在架构树更深层次处存在的子级。

    运算符

    指定要在筛选表达式中使用的比较运算符。

    指定要在“筛选条件”节点中检查的值。输入值。如果为 XSLT 页面定义了动态参数,则可以从弹出菜单中选择一个参数。

  5. 若要指定其它过滤器,请再次单击加号 (+) 按钮。

    当输入值或在弹出菜单中进行选择时,“表达式”框中的 XPath 表达式会发生改变。

    下例将把结果集限制为 @available 属性值为 true 的那些 item 节点。

    将结果集限制为 @available 属性值为 true 的那些 item 节点

    您单击“确定”时,将在您的 XSLT 页面中插入以下代码:<xsl:for-each select="provider/store/items/item[@available = &apos;true&apos;]"> Content goes here </xsl:for-each>

    <xsl:for-each select="provider/store/items/item[@available = &apos;true&apos;]">   Content goes here </xsl:for-each>

    注意:您需要将字符串值(如 true)用引号引起来。Dreamweaver 会对引号 (&apos;) 进行编码,以便它们能够作为有效的 XHTML 输入。

    您可以创建允许将父节点指定为筛选标准一部分的更复杂的过滤器。下例将把结果集限制为满足以下条件的那些 item节点:store 的 @id 属性等于 1,item 的 price 节点大于 5。

    将结果集限制为满足以下条件的那些 item节点:store 的 @id 属性等于 1,item 的 price 节点大于 5

    您单击“确定”时,将在您的 XSLT 页面中插入以下代码:<xsl:for-each select="provider/store[@id = 1]/items/item[price &gt; 5]"> Content goes here </xsl:for-each>

    有关重复区域的详细信息和示例,请参阅“参考”面板中的 <xsl:for-each> 部分。

    <xsl:for-each select="provider/store[@id = 1]/items/item[price &gt; 5]"> Content goes here </xsl:for-each>

更多此类内容

  • 使用 Dreamweaver 站点
  • 选择应用程序服务器
  • 将 XML 和 XSL 用于网页
  • 客户端 XSL 转换
  • 服务器端 XSL 转换
  • 预览 XML 数据
  • 使用表格显示内容
  • XML 数据和重复元素
  • 使用设计时样式表