首先,我是XSLT的新手。 我正在使用Sharepoint列表,如果有特定區域中的數據,我需要獲取鏈接才能顯示。如果某個季度沒有數據,我需要有一個標籤說明。Xstl全局變量設置爲每個並在foreach後使用
所以我所做的就是我創建了一個foreach循環,用於給定年份的同一月份的每個數據。我知道我不能在xslt中重新分配一個變量,但我不知道如何執行我想要的操作。 這是我的代碼示例。由於我正在使用Sharepoint,因此我沒有訪問XML。 :/
<xsl:variable name="DataQ1" select="'False'"/>
<xsl:variable name="DataQ2" select="'False'"/>
<xsl:variable name="DataQ3" select="'False'"/>
<xsl:variable name="DataQ4" select="'False'"/>
<xsl:for-each select="../Row[generate-id()=generate-id(key('MonthKey', substring(@Date,6,7))[substring('@Date',1,4) = $varYear)][1])]">
<xsl:variable name="currentMonth" select="number(substring(@Date,6,7))"/>
<xsl:choose>
<xsl:when test="$currentMonth >= 1 and $currentMonth $lt;=4">
<!--set $DataQ1 to true-->
</xsl:when>
<xsl:when test="$currentMonth >= 4 and $currentMonth $lt;=7">
<!--set $DataQ2 to true-->
</xsl:when>
<xsl:when test="$currentMonth >= 7 and $currentMonth $lt;=10">
<!--set $DataQ3 to true-->
</xsl:when>
<xsl:otherwise>
<!--set $DataQ4 to true-->
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<div>
<xsl:choose>
<xsl:when test="$DataQ1= 'True'">
<a>
<xsl:attribute name="href">
<xsl:value-of select="www.example.come"/>
</xsl:attribute>
<xsl:value-of select="'LinkToDataofQ1'"/>
</a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'There's no data for this quarter.'"/>
</xsl:otherwise>
</xsl:choose>
</div>
請編輯問題並提供確切的(最好是小的)源XML文檔和確切的轉換結果。另外,請說明轉換必須執行的要求(規則/限制)。 – 2013-03-27 04:07:53