【问题标题】:xslt syntax: Use a variable into anotherxslt 语法:将一个变量用于另一个变量
【发布时间】:2011-02-22 16:24:44
【问题描述】:

我正在尝试做类似的事情:

<xsl:variable name="typetest" 
              select="substring-before(
                         (substring-after(base-uri(),'Test_')),
                         '_'
                      )"/>          
<xsl:variable name="minAdd"+"$typetest" 
              select="teststep[@name='add"$typetest"Etalon']/@min"/>

我找不到在另一个 var 的名称和选择中使用我的 var $typetest 的正确方法。 我不知道这是否可能,我正在使用 XSLT 2.0

【问题讨论】:

  • 你不能完全做到这一点,但如果你解释你想要达到的目标,可能会有不同的方法来完成同样的事情。
  • 向我们展示不起作用的代码并不是解释您的要求的好方法。但是您似乎认为 XSLT 变量通过文本替换起作用,但事实并非如此。变量引用 $x 是一个计算结果为值的表达式(不是程序文本的片段),您只能在需要值的地方使用它。
  • 首先,这甚至不是正确的 XML...其次,为什么要为变量使用动态名称?为什么除了 XSLT 之外的任何语言都需要它?如果您想要某种键映射结构,为什么不使用中间 XML 结果?

标签: xslt variables syntax


【解决方案1】:

变量名必须是有效的qname。它不能是表达式的结果。 Source:

<!-- Category: declaration -->
<!-- Category: instruction -->
<xsl:variable
  name = qname
  select? = expression
  as? = sequence-type>
  <!-- Content: sequence-constructor -->
</xsl:variable>

【讨论】:

    猜你喜欢
    • 2023-01-20
    • 2015-03-19
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 2010-11-26
    • 2013-12-21
    • 1970-01-01
    相关资源
    最近更新 更多