XSL。评估表达

2024-05-07

对不起我的英语不好。

XSL 1.0.如何从元素或属性值计算表达式?

例如 XML:

<position>
  <localizedName>ref-help</localizedName>
  <reference>concat('../help/', $lang, '/index.html')</reference>
</position>

我尝试使用“引用”属性中的表达式:

<xsl:for-each select="/content/positions/position">
        <li>
          <!--Save expression to variable...-->
          <xsl:variable name="path" select="reference"/>
          <!--Evaluate variable and set it value to 'href'-->
          <a target="frDocument" href="{$path}">
            <xsl:variable name="x" select="localizedName"/>
            <xsl:value-of select="$resources/lang:resources/lang:record[@id=$x]"/>
          </a>
        </li>
      </xsl:for-each>

但我得到字符串:

文件:///C:/sendbox/author/application/support/concat('../help/',%20%24lang,%20'/index.html')

我该如何评价它?

Regards


如果您的 XSLT 处理器实现EXSLT http://www.exslt.org/扩展,可以参考动态将字符串计算为 XPath 表达式的函数 http://www.exslt.org/dyn/functions/evaluate/index.html:

<xsl:stylesheet 
  version="1.0"
  xmlns="http://www.w3.org/1999/XSL/Transform"
  xmlns:dyn="http://exslt.org/dynamic"
  extension-element-prefixes="dyn"
>
  <xsl:template match="content">
    <xsl:apply-templates select="positions/position" />
  </xsl:template>

  <xsl:template match="position">
    <li>
      <a target="frDocument" href="{dyn:evaluate(reference)}">
        <xsl:value-of select="
          $resources/lang:resources/lang:record[@id=current()/localizedName]
        "/>
      </a>
    </li>
  </xsl:template>
</xsl:stylesheet>

Note:

  • 在使用之前不需要将它们保存在变量中
  • 有一个current()您可能错过的功能
  • use <xsl:apply-templates> and <xsl:template>有利于<xsl:for-each>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSL。评估表达 的相关文章

随机推荐

  • .NET 声明式安全性:为什么 SecurityAction.Deny 无法使用?

    我已经搞乱了大约一天半的时间 现在正在筛选 NET Reflector 和 MSDN 文档 但无法弄清楚任何事情 在 NET 框架中 您可以通过标记如下方法来要求当前的委托人属于一个能够执行方法的角色 PrincipalPermission
  • 未定义的变量:HTTP_RAW_POST_DATA

    当我对 HTTP RAW POST DATA 进行简单的回显时 出现错误 Undefined variable HTTP RAW POST DATA 我在 php ini 中读到我需要取消勾选 always populate raw pos
  • 从编码视频文件中提取运动向量

    我正在尝试从编码的 mp4 文件中提取运动矢量数据 在之前的帖子中我发现 一个答案http www princeton edu jiasic cos435 motion vector c http www princeton edu jia
  • 如何更新我的 docker 服务/堆栈使用的最新映像?

    In the yml定义 我总是拉latest我的服务形象 当我将新映像推送到注册表并且想要更新堆栈中的服务使用的映像时 我没有看到任何 pull标志和文档码头服务更新 https docs docker com engine refere
  • 多项式混合 Logit 模型 mlogit r-package

    我发现了mlogit package https cran r project org web packages mlogit index html对于多项 Logit 模型 寻找估计多项混合 Logit 模型 在阅读了精彩的小插图后 我发
  • MICE LoggedEvents 是什么意思?

    我正在尝试使用以下方法运行多重插补miceR 中的函数 来自同名包 我收到一条警告 表明事件已被记录 这是输出mice loggedEvents来自我的 MWE 见下文 it im dep meth out 1 1 X pmm H 我不确定
  • react-google-maps/api 避免在某些状态更改后重新渲染地图

    我遇到了问题 我的 GoogleMaps 实例会刷新并以某些方式自我居中onClick设置状态的函数 并且将发生整个组件渲染周期 经过一番谷歌搜索后 有人建议将组件实例化分开并重新使用 现在的问题是我有一些逻辑来在内部显示标记
  • 我仍然没有获得代表

    使用委托不是可以帮助处理一些异步情况吗 我尝试了以下操作 但我的用户界面仍然挂起 你到底什么时候使用代表 Public Class Form1 Private Delegate Sub testDelegate Private Sub Bu
  • 使用百分比作为 img 元素的宽度和高度属性会产生什么后果?

    我正在寻找某种方法来定位img元素在HTML从 w3schools com 注意到这句话的页 面 它讲的是设置width in an img元素 在 HTML 4 01 中 宽度可以以像素或包含元素的百分比来定义 在 HTML5 中 该值必
  • R 中从右到左的运算符结合性可能吗?

    我是 R 新手 我刚刚发现我患有支架恐惧症 https mathematica stackexchange com a 17315 2266 请参阅链接中的评论 我喜欢这种方式magrittr符号 gt 有效 因为它在某些情况下避免了嵌套括
  • 淘汰赛“闪烁”问题

    我正在使用 KO 构建 SPA 单页应用程序 该应用程序看起来像一本书 用户可以翻页 问题是 每次加载页面时 都会有一小段时间页面 闪烁 用户会看到页面的无样式版本 我猜这是因为很多样式都依赖于 ko 绑定 所以在 ko 完成它 神奇 之前
  • 这是 `min` 和 `nanmin` 之间的区别; Matlab 中的“max”和“nanmax”?

    Matlab描述nanmin and nanmax像这样 NANMIN最小值 忽略NaNs NANMAX最大值 忽略NaNs 但实际上 min and max ignore NaNs too 那我应该使用哪个 根据我的测试 nanmin a
  • 如何使用 Rally 的 JAVA API 将标签添加到 Rally 中的测试用例?

    我一直在努力向 Rally 中的测试用例添加标签 该标签已存在于 Tags 集合中 但我无法将其添加到测试用例中 有人可以提供一个关于如何执行此操作的示例吗 多谢 下面是如何执行此操作的示例 该示例显示了向现有测试用例添加标签 以及创建新测
  • 检查互联网连接是否可用?

    我正在开发在线应用程序 问题 当互联网关闭或不可用时 它会给我错误 强制关闭 我尝试使用broadCast Receiver进行处理 但没有满足确切的解决方案 正在寻找更好的解决方案 public class MyBroadcastRece
  • 不活动后自动“停止”Sagemaker 笔记本实例?

    我有一个 Sagemaker Jupyter 笔记本实例 我一直错误地将它留在网上过夜 不必要地花费了金钱 当没有活动 例如 1 小时 时 是否有任何方法可以自动停止 Sagemaker 笔记本实例 或者我必须制作一个自定义脚本 您可以使用
  • 根据 HTTP PATCH RFC,文档的部分表示是否是有效的“更改集”?

    这是什么RFC 5789 https www rfc editor org rfc rfc5789 says PATCH 方法请求将请求实体中描述的一组更改应用于由 Request URI 标识的资源 这组更改以称为 补丁文档 的格式表示
  • 如何从命令行提供非 slurpy 数组或命名数组?

    首先 raku perl6 非常棒 克罗也是如此 只花了一个周末就坠入爱河 然而现在我偶然发现了一些非常简单的事情 如果我在多重调度 MAIN 中使用 slurpy 参数 则会被识别并完美运行 multi MAIN config add h
  • 如何随时暂停 pthread?

    最近我开始将 ucos ii 移植到 Ubuntu PC 上 我们知道 在pthread的回调函数中的 while 循环中简单地添加一个标志来执行暂停和恢复是不可能模拟ucos ii中的 进程 的 如下解决方案 因为ucos ii中的 进程
  • Python 3.7 Windows 不支持 dbm.gnu 吗?

    做的时候 import dbm gnu 在适用于 Windows 的标准 Python 3 7 6 64 上 我得到 文件 C Python37 lib dbm gnu py 第 3 行 位于从 gdbm 导入 ModuleNotFound
  • XSL。评估表达

    对不起我的英语不好 XSL 1 0 如何从元素或属性值计算表达式 例如 XML