次の atm のような XSLT があります。
<xsl:template match="Root">
<xsl:for-each select="Worksheettype[@name='DubieuzeDebiteurenApp']">
<xsl:for-each select="Types/Sub/*">
<xsl:for-each select="./*">
<xsl:value-of select="ancestor::Worksheettype/@TypeId"/> ; <xsl:value-of select="local-name(parent::*)"/> ; <xsl:value-of select="local-name()"/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
<xsl:for-each select="Worksheettype[@name='VoorzieningenApp']">
<xsl:for-each select="Types/Sub/*">
<xsl:for-each select="./*">
<xsl:value-of select="ancestor::Worksheettype/@TypeId"/> ; <xsl:value-of select="local-name(parent::*)"/> ; <xsl:value-of select="local-name()"/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
<xsl:for-each select="Worksheettype[@name='RisicoKapitaalApp']">
<xsl:for-each select="Types/Sub/*">
<xsl:for-each select="./*">
<xsl:value-of select="ancestor::Worksheettype/@TypeId"/> ; <xsl:value-of select="local-name(parent::*)"/> ; <xsl:value-of select="local-name()"/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
それは問題なく動作しますが、ご覧のとおり、3 つの同一のコード ブロックがありますが、それぞれの for-each ステートメントに異なる選択パラメーターがあります。
3 つの選択パラメーターを格納できる変数を作成し、それらを単純に反復処理して、コードを 1 ブロックだけに削減できるようにしたいと考えています。
変数を作成しようとしましたが、常に失敗します...
どんな助けでも大歓迎です:)
ありがとう!