我有这个XSLT1.0代码:
<xsl:value-of select="//Labels/CounselPoint"/> <xsl:value-of select="StudentTalk1M/@StudyPoint"/> 
我现在改变了我的方法,让一个名为Class的参数。所以我想这样做:
<xsl:value-of select="//Labels/CounselPoint"/> <xsl:value-of select="StudentTalk1{$Class}/@StudyPoint"/> 
Visual Studio不喜欢它。如何在我的陈述中使用参数?
这是调用代码:
<xsl:call-template name="Display_AYTFM">
<xsl:with-param name = "Class" select ="M" />
</xsl:call-template> />
这是该方法的一部分:
<xsl:template name = "Display_AYTFM" >
<xsl:param name = "Class" />
<div class="containerAYFM">
答案 0 :(得分:0)
属性值模板允许您在普通属性中嵌入表达式,例如
<chapter id="chap{$n}">
您不能使用此语法在另一个表达式中嵌入表达式 - xsl:value-of
的select属性已经是表达式,因此您不能以这种方式在其中使用花括号。
现在,我发现很难纠正你的语法,因为我真的不知道你的想法。我想这是因为你的原始代码已经
了StudentTalk1M/@StudyPoint
并且您的新代码已
StudentTalk1{$param}/@StudyPoint
那么也许你有一些名为StudentTalk1A,StudentTalk1B,StudentTalk1C等的元素,你想要参数化你选择哪一个。这将是一种滥用XML的可怕方式,但如果你真的需要这样做,你可以写
select="*[name()=concat('StudentTalk1', $param)]/@StudyPoint