1

こんにちは、xsl ノード パスを変数と連結して、xslt に動的ノード パスを含める必要があります。

私はこのノードを持っています:

<PRODOTTI>
  <ITEM STATO="2">
</PRODOTTI>
<STATI>
  <COD0>Errore</COD0>
  <COD1>In spedizione entro le prossime 12-24 ore</COD1>
  <COD2>In spedizione entro le prossime 24-48 ore</COD2>
 </STATI>

そしてxslで私は持っています

<xsl:variable name="stato_ordine" select="@STATO"/>
<xsl:variable name="ordine" select="concat(../../../TRADUZIONI/STATI/COD, $stato_ordine)" />
<xsl:value-of select="$ordine"></xsl:value-of>

しかし、出力では「stato_ordine」値のみを取得します。代わりに、ノード値を取得するには完全なパスが必要です。

とにかくこれを持つことはありますか?

ありがとうございました。

4

1 に答える 1

3

欲しいと思います<xsl:value-of select="../../../TRADUZIONI/STATI/*[local-name() = concat('COD', $stato_ordine)]"/>

[編集] より効率的な解決策として、キーを子として定義できますxsl:stylesheet

<xsl:key name="k1" match="STATI/*[starts-with(local-name(), 'COD')]" use="substring(local-name(), 4)"/>

そして、やって

<xsl:value-of select="key('k1', $stato_ordine)"/>

十分なはずです。

于 2012-07-13T15:52:47.793 に答える