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 回答