如何在XSLT中使用变量的值作为键的use属性,我想在key标签中实现use =“$ Variable”;;

时间:2012-01-20 16:09:11

标签: xslt sharepoint-2010 sharepoint-designer xslt-1.0

假设我在SharePoint Designer 2010中的xslt文件中定义了一个键:

<xsl:key name="Years" match="/dsQueryResponse/Rows/Row" use="@Date" />

其中@Date是列,但是我想使用以下变量的值而不是@Date:

<xsl:variable name="VarNAme">
        <xsl:choose>
           <xsl:when test="string-length(@Date) = 8">
                <xsl:value-of select="substring(@Date, 5, 4)"></xsl:value-of>
            </xsl:when>
            <xsl:when test="string-length(@Date) = 9">
                <xsl:value-of select="substring(@Date, 6, 4)"></xsl:value-of>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="substring(@Date, 7, 4)"></xsl:value-of>
            </xsl:otherwise>
        </xsl:choose>   
</xsl:variable>

如果有一个更好的方式(单线)从日期开始只有一年,我也欢迎。请协助,我想使用generate-id来获得不同的年份(不是日期,年份)。

我真的很感谢你的帮助!

1 个答案:

答案 0 :(得分:4)

<xsl:key 
  name="Years" 
  match="/dsQueryResponse/Rows/Row" 
  use="substring(@Date, string-length(@Date) - 3, 4)"
/>

提示

 8 - 3 = 5
 9 - 3 = 6
10 - 3 = 7

- )