Как я могу использовать значение переменной для свойства использования ключа в XSLT, я хочу добиться использования=$Variable в ключевом теге;;

Предположим, у меня есть ключ, определенный в файле 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 для получения разных лет (не дат, а лет).


person anpatel    schedule 20.01.2012    source источник
comment
Насколько мне известно, процессор XSLT, используемый в Sharepoint, представляет собой процессор XSLT 1.0.   -  person Dimitre Novatchev    schedule 20.01.2012


Ответы (1)


<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

;-)

person Tomalak    schedule 20.01.2012
comment
ГЕНИАЛЬНО!! СПАСИБО, подождите, дайте мне проверить это, а затем проголосуйте за вас, это сработало, я не знаю, почему я этого не сделал .. Я не могу принять ответ через 6 минут, поэтому я приму его завтра! СПАСИБО, Томалак, виртуальное объятие - person anpatel; 20.01.2012
comment
@MyName: Добро пожаловать. Иногда дерево трудно увидеть. ;) - person Tomalak; 20.01.2012