Кто-нибудь знает, возможно ли зацикливаться на шаблоне и извлекать значения узлов на основе числа итераций.Например, у меня есть следующая структура XML:
<nodes>
<node>
<label1>Label a</label1>
<value1>Value a</value1>
<label2>Label b</label2>
<value2>Value b</value2>
<label3>Label c</label3>
<value3>Value c</value3>
etc...
</node>
</nodes>
Всегда есть 20 пар меток / значений данных.Я хочу вывести их через XSLT в таблице.Перебирая шаблон 20 раз (если нет лучшего способа).
Код, который я имею ниже, работает, но он не принимает динамическое число при выводе значений (например,
<xsl:value-of select="$node/label$index"/>
)
Вот код на данный момент:
<xsl:param name="currentPage"/>
<xsl:variable name="numberOfPairs" select="20" />
<xsl:template match="/">
<table>
<xsl:call-template name="outputData">
<xsl:with-param name="node" select="$currentPage" />
</xsl:call-template>
</table>
</xsl:template>
<xsl:template name="outputData">
<xsl:param name="node" select="." />
<xsl:param name="index" select="1" />
<tr>
<td><xsl:value-of select="$node/label1"/></td>
<td><xsl:value-of select="$node/value1"/></td>
</tr>
<xsl:if test="$index <= $numberOfPairs">
<xsl:call-template name="outputData">
<xsl:with-param name="node" select="$node" />
<xsl:with-param name="index" select="$index + 1" />
</xsl:call-template>
</xsl:if>
</xsl:template>
Кто-нибудь может предложить решение этой проблемы?