在 XSL 中进行双遍?

2023-12-02

是否可以将 XSL 转换的输出存储在某种变量中,然后对变量的内容执行附加转换? (全部在一个 XSL 文件中)

(XSLT-2.0 首选)


XSLT 2.0 解决方案:

<xsl:variable name="firstPassResult">
  <xsl:apply-templates select="/" mode="firstPass"/>
</xsl:variable>

<xsl:template match="/">
  <xsl:apply-templates select="$firstPassResult" mode="secondPass"/>
</xsl:template>

这里的技巧是在第一遍中使用 mode="firstPassResult",而第二遍的所有模板都应具有 mode="secondPass"。

Edit:

例子 :

<root>
  <a>Init</a>
</root>

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output indent="yes"/>
  <xsl:strip-space elements="*"/>

  <xsl:variable name="firstPassResult">
    <xsl:apply-templates select="/" mode="firstPass"/>
  </xsl:variable>

  <xsl:template match="/" mode="firstPass">
      <test>
        <firstPass>
          <xsl:value-of select="root/a"/>
        </firstPass>
      </test>
  </xsl:template>

  <xsl:template match="/">
    <xsl:apply-templates select="$firstPassResult" mode="secondPass"/>
  </xsl:template>

  <xsl:template match="/" mode="secondPass">
    <xsl:message terminate="no">
      <xsl:copy-of select="."/>
    </xsl:message>
  </xsl:template>

</xsl:stylesheet>

输出 :

[xslt] <test><firstPass>Init</firstPass></test>

因此,第一遍创建一些包含 root/a 内容的元素,第二遍将创建的元素打印到 std 输出。希望这足以让您继续前进。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 XSL 中进行双遍? 的相关文章

随机推荐

  • android 在 Eclipse 图形布局中添加设备

    就像我可以创建自定义一样AVD s我想为我的图形布局创建自定义设备预览 是否可以做以及如何做 否则 没有其他选项 据我所知 可以预览自定义设备 而无需制作 AVD 并在模拟器中查看它 这是一个非常漫长的过程 如果您使用的是当前版本的 Ecl
  • 无法使用 Python 中的 Chrome 的 selenium Web 驱动程序打开两个具有不同配置文件的 Google Chrome 实例

    我正在使用 Selenium WebDriver for Chrome 同时打开两个具有两个不同配置文件 配置文件 1 和配置文件 2 的 Google Chrome 实例 第一个具有配置文件 1 的实例成功打开 但是 当我尝试使用配置文件
  • JNA/WinAPI。模拟鼠标点击而不移动光标无法正常工作

    EDIT 抱歉 但我不确定我的问题是否正确关闭 有人建议我这样做thread但它没有回答我的问题 我可以模拟鼠标单击 但它无法正常工作 正如我在问题中所描述的那样 我仍在学习 JNA 并将其用于我的Java应用程序 JNA 5 6 0 和
  • 如何向 Jenkins Pipeline 添加超时步骤

    当您使用自由风格项目时 您可以设置在 20 分钟后如果未结束则中止构建 Jenkins 多分支管道项目如何实现这一点 您可以使用timeout step timeout 20 node sh foo 如果您需要不同的TimeUnit tha
  • 如何在 jqgrig 中使用内联导航传递外部数据?

    我在 jqgrid 中使用内联导航 所以我想添加新行 当我使用该行数据添加新行时 我想传递一些其他外部数据 怎么可能呢 你需要使用addParams的期权的属性inlineNav 查看示例here here and here例如 UPDAT
  • 在 lib/Varien/Data/Form/Element 文件夹中添加自己的文件是一个好习惯吗

    我需要在 Magento 中创建模块 其中包含很少的数据库表 该模块的功能之一是添加多个图像 例如 当在 添加新项目 or 编辑项目 管理页面 从左侧我有选项卡 其中之一是 物品图片 当被单击时 我希望此选项卡的内容是我自己的自定义内容 深
  • Django 中的社交媒体链接

    我想在 Django 模板中的帖子末尾设置一个社交链接 如何使用 Django 帖子中的社交媒体链接在社交中分享我的帖子 查看 django social share https github com fcurella django soc
  • 当执行长计算时,如何使用 Shiny 在 index.html 中实现进度条

    我正在尝试实现类似进度条的东西 以便在估计某些函数的值时使用 该函数需要很长时间来处理 有没有办法从 server R 发送一些指示功能已完成的指示器 这样我就可以隐藏 index html 文件中的进度条 我的代码如下
  • 使用 css 垂直流动的文本

    我想要一个包含一些文本的 div 但我希望文本垂直流动而不是水平流动 像这样 M y t e x t 关于如何用 CSS 实现这一点有什么想法吗 如果你只有一个line您可以尝试使用的文本width 1em letter spacing 1
  • 需要改变不同结构中的公共字段的方法

    我在这里使用 C 语言进行编程 适用于 Windows 和各种 Unix 平台 我有一组具有共同字段的结构 但也有不同的字段 例如 typedef struct char street 10 char city 10 char lat 10
  • 如何在 docker-compose 中将两个正在运行的容器相互连接?

    所以我有这个简单的 Python Flask 应用程序 其中有 2 个服务 应用程序和数据库 我希望应用程序 Flask 应用程序 连接到数据库服务 PostgreSQL 现在 当我注释掉应用程序服务并运行docker compose up
  • 面向对象的pyplot

    我需要处理 pyplot 对象 例如图形和轴 这是我想要的一个简化示例 In 1 import matplotlib pyplot as mp In 2 fig mp figure create a figure In 3 mp show
  • Java8时间库不能正确解释BST时区

    我正在迁移我的代码以使用java time包但我发现DateTimeFormatter无法正确解释时区 BST 英国夏令时间 而不是制作它UTC 0100 它将其转换为太平洋 布干维尔时区 有谁知道我如何解决这个问题而不需要回到旧的 Sim
  • 将 linq 连接的左侧或右侧填充为相同的行数

    我的目标是创建一个右侧或左侧行数相同的列表 无论左列或右列是否比另一列短 考虑这两个查询 var result1 from f in list2 join b in list1 on f index equals b index into
  • 以编程方式提交作业时 Spark EC2 集群上出现 java.io.EOFException

    真的需要你的帮助来理解我做错了什么 我实验的目的是以编程方式运行 Spark 作业 而不是使用 spark shell 或 spark submit 这些都对我有用 环境 我使用 spark ec2 脚本创建了一个包含 1 个主节点和 1
  • 正则表达式 - Unicode 属性参考和示例

    我对 RegexBuddy 提供的正则表达式 Unicode 属性感到迷失 我无法区分任何数字属性 并且数学符号属性似乎仅匹配 但不是 例如 是否有任何带有正则表达式 Unicode 属性示例的文档 参考 Unicode 字符属性 您在示例
  • 无法从 ionic 注销

    您好 我有离子登录和注销的问题 每次注销后 我仍然可以单击后退按钮 它会将我带回到上一页 我可以知道如何在注销时清除或删除会话 以便用户无法从登录返回上一页吗 var default stat scope logout function i
  • 类型错误:无法将 Sparsetensor 类型的对象转换为 Tensor

    我正在为 imdb 情感分析数据集构建文本分类模型 我下载了数据集并按照此处给出的教程进行操作 https developers google com machine learning guides text classification
  • Python3 CGI HTTPS 服务器在 Unix 上失败

    这个Python3 CGI HTTPS服务器几周 或几个月 前可以工作 但现在不再在Linux Ubuntu 下工作 我在 Ubuntu 10 04 和 Ubuntu 14 04 上尝试过 行为是相同的 现在 当我尝试访问任何 CGI 脚本
  • 在 XSL 中进行双遍?

    是否可以将 XSL 转换的输出存储在某种变量中 然后对变量的内容执行附加转换 全部在一个 XSL 文件中 XSLT 2 0 首选 XSLT 2 0 解决方案