xslt语法:将一个变量转换为另一个变量
我试着做一些类似的事情:xslt语法:将一个变量转换为另一个变量,xslt,variables,syntax,Xslt,Variables,Syntax,我试着做一些类似的事情: <xsl:variable name="typetest" select="substring-before( (substring-after(base-uri(),'Test_')), '_' )"/> <xsl:variable name="minAdd"
<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的正确方法。
我不知道这是否可能,我正在使用XSLT2.0,变量名必须是有效的。它不能是表达式的结果
你不能完全做到这一点,但如果你解释你想要实现的目标,可能会有不同的方法来实现同样的目标。向我们展示不起作用的代码并不是解释你的需求的好方法。但您似乎认为XSLT变量是通过文本替换工作的,而事实并非如此。变量引用$x是一个计算结果为值(而不是程序文本片段)的表达式,您只能在需要值的地方使用它。。。第二,为什么需要变量的动态名称?除了XSLT之外,为什么您还希望其他语言使用这种语言?如果需要某种键映射结构,为什么不使用中间XML结果?
<!-- Category: declaration -->
<!-- Category: instruction -->
<xsl:variable
name = qname
select? = expression
as? = sequence-type>
<!-- Content: sequence-constructor -->
</xsl:variable>