XSL for-each过滤;如何在select中评估TWO变量?

时间:2011-02-23 15:38:30

标签: xslt sharepoint-2007

<xsl:variable name="filterValue"
 >@subject = 'Subject To Filter On'</xsl:variable>
<xsl:for-each select="$Rows[$filterValue]">

在我看来,$ filterValue被视为文字字符串而不是被评估。我怎样才能使变量值得到评估呢?

期望的结果

<xsl:for-each select="$Rows[@subject = 'Subject To Filter On']">

如果之前已经回答过,我很抱歉,我对XSL的术语知之甚少,所以我在网上搜索时遇到了麻烦。感谢。

1 个答案:

答案 0 :(得分:1)

XSLT 1.0和XSLT 2.0都不支持动态评估XPath表达式。

通常,有解决方法。

在这种特定情况下,您可以拥有(全局/外部)参数:

  <xsl:param name="attrName" select="'subject'"/>
  <xsl:param name="attrValue" select="'Subject To Filter On'"/>

,然后在您的代码中

<xsl:for-each select="$Rows[@*[name()=$attrName] = $attrValue]">