for-eachループを使用して、 countの属性値に基づいて <td> 列を表示したいと考えています。誰かがそれを達成するのを手伝ってくれますか? XSLT 開発は初めてです。
XML ノード:
<row count="72">
編集:カウント -行の列数については、ここで参照されます
前もって感謝します。
for-eachループを使用して、 countの属性値に基づいて <td> 列を表示したいと考えています。誰かがそれを達成するのを手伝ってくれますか? XSLT 開発は初めてです。
XML ノード:
<row count="72">
編集:カウント -行の列数については、ここで参照されます
前もって感謝します。
カウントが数千にならない場合、これは単純な再帰によって行うことができます。XSLT には変更可能な変数がないため、反復は不可能です。
<xsl:template match="row[@count > 0]">
<xsl:call-template name="new-td">
<xsl:with-param name="count" select="@count" />
</xsl:call-template>
</xsl:template>
<xsl:template name="new-td">
<xsl:param name="count" select="0" />
<xsl:if test="$count">
<!-- create current cell -->
<td>
<!-- contents... -->
</td>
<!-- recursive step: create next cell -->
<xsl:call-template name="new-td">
<xsl:with-param name="count" select="$count - 1" />
</xsl:call-template>
</xsl:if>
</xsl:template>
XSLT プロセッサがどれほど優れているかに応じて、バックグラウンドでこれを反復ループに最適化するため、スタック オーバーフロー エラーが発生する可能性は低くなります$count
。XSLT プロセッサがどのように反応するかを確認するには、非常に大きな数値で試してください。
推奨される読み物: IBM DeveloperWorks のXSL で再帰を効果的に使用してください。