В любом случае в xslt есть
, чтобы получить узел из списка напрямую, без использования цикла for-each:
попробовал это, но, похоже, это не сработало:
<xsl:variable name="currentNode" select="$currentPage/ * [position() = 4]" />
любая помощь будет оценена.
просто добавить к этому:
<xsl:template name="checkmonth">
<xsl:param name="stringOfMonths" />
<xsl:param name="n" />
<xsl:param name="currentCount" />
<!--get node in list -->
<xsl:variable name="currentNode" select="$currentPage/ * [position() = $currentCount]" />
<xsl:variable name="dateOfNode" select="$currentNode" />
<xsl:choose>
<xsl:when test="not(contains($stringOfMonths,dateOfNode/@createDate))">
<xsl:value-of select="$dateOfNode/@createDate" />
<xsl:if test="$currentCount < $n">
<xsl:call-template name="checkmonth">
<xsl:with-param name="stringOfMonths" select="concat($stringOfMonths," ",$dateOfNode/@createDate />
<xsl:with-param name="n" select="$n" />
<xsl:with-param name="currentCount" select="$currentCount + 1" />
</xsl:call-template>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$currentCount < $n">
<xsl:call-template name="checkmonth">
<xsl:with-param name="stringOfMonths" select="$stringOfMonths" />
<xsl:with-param name="n" select="$n" />
<xsl:with-param name="currentCount" select="$currentCount + 1" />
</xsl:call-template>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
У меня есть список узлов, созданных в разные даты, я хочу создать список только тех месяцев, когда эти узлы были созданы. 'n' - общее количество узлов в списке