嗨我需要用一个变量连接一个xsl节点路径,在xslt中有一个dinamic节点路径。
我有这个节点:
<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”值,而不是我需要完整的路径来获取节点值。
无论如何都有这个吗?
谢谢。
答案 0 :(得分: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)"/>
应该足够了。