0

パラメータ名を動的に指定するにはどうすればよいですか?

例: 入力として xsl に入力されるパラメーターはほとんどなく、各パラメーターは xml コンテンツを保持します。ただし、xsl では、実行時にいくつのパラメーターが発生するかわかりません。

次のxslで試しましたが、うまくいきませんでした。

 <xsl:element name="param0">
            <xsl:copy-of select="concat('$','param0')/>
        </xsl:element>

しかし、以下はparamからxmlを取得します。

 <xsl:element name="param1">
            <xsl:copy-of select="$param1"/>
        </xsl:element>

実行時に、いくつのパラメーターがあるかはわかっていますが、no.of params は入力に対して常に変化するため、xsl で同じものを定義することはできません。

これが xsl でも可能かどうか教えてください。

ありがとう、キラン

4

2 に答える 2

0

入力としてxslに入るパラメーターはほとんどなく、各パラメーターはxmlコンテンツを保持しています。ただし、xsl では、実行時にいくつのパラメーターが発生するかわかりません。

それぞれが 1 つのノードを保持するいくつかの異なるパラメーターを渡す代わりに、値がノード セットである固定名を持つ1 つのパラメーターを渡すように、表現を変更する必要があるように思えます。これが正確にどのように達成されるかは、使用しているプロセッサとスタイルシートの呼び出し方法によって異なりますが、それが達成できる場合は、次のようなことができます

<xsl:for-each select="$params">
  <xsl:element name="param{position() - 1}">
    <xsl:copy-of select="." />
  </xsl:element>
</xsl:for-each>
于 2013-07-10T15:38:13.170 に答える