如何将XSL属性存储到变量中,并将其作为模板内的属性值使用

时间:2015-06-26 23:03:41

标签: xslt sharepoint-2010

我正在为SharePoint创建自定义XSL,并且我希望它可以重用于其他数据视图Web部件。 XSL使用Bootstrap选项卡创建列表的选项卡视图。通过提取列中的唯一值来生成选项卡。我希望能够将列定义为变量,然后使用模板和for-each循环使用此变量生成选项卡并过滤列表项。以下是我想要做的简化版本:

XML是一个SharePoint列表,因此:

<dsQueryResponse>
     <Rows>
        <Row attribute1="value1" attribute2="value3" attribute3="value3" />
        <Row attribute1="value2" attribute2="value3" attribute3="value4" />
        <Row attribute1="value3" attribute2="value3" attribute3="value5" />
    </Rows>
</dsQueryResponse>

XSL:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

    <xsl:output method="html" indent="yes"/>

    <xsl:variable name="tabcategory" select="/dsQueryResponse/Rows/Row/@arribute2" />

    <xsl:template match="/dsQueryResponse/Rows/Row">
        <p><xsl:value-of select="@attribute2" /></p>
        <p><xsl:value-of select="$tabcategory" /></p>
    </xsl:template>

</xsl:stylesheet>

目前的输出是:

<p>value3</p>
<p></p>

<p>value3</p>
<p></p>

<p>value3</p>
<p></p>

所需的输出是:

<p>value3</p>
<p>value3</p>

<p>value3</p>
<p>value3</p>

<p>value3</p>
<p>value3</p>

我需要通过使用变量而不是@attribute节点来获取SharePoint行的属性值。现在它返回一个空值。

0 个答案:

没有答案