Прежде всего, я новичок в 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-документ и точный желаемый результат преобразования. Кроме того, пожалуйста, объясните требования (правила/ограничения), которые должно выполнить преобразование. –