Как я могу использовать значение переменной для свойства use ключа в XSLT, я хочу добиться use = "$ Variable" в ключевом теге ;; - PullRequest
2 голосов
/ 20 января 2012

Предположим, у меня есть ключ, определенный в файле xslt в SharePoint Designer 2010 как:

<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 Ответ

4 голосов
/ 20 января 2012
<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

; -)

...