如何在XSL select语句中使用变量?

时间:2013-09-08 11:39:25

标签: xml xslt symphony-cms

我是XSL的新手,我想在我的XSL中使用我的变量$language

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="data">

    <xsl:value-of select="concat(//text-, $language)"/> 

  </xsl:template>

</xsl:stylesheet>

如何做到这一点?

这是我的XML:

<data>
  <params>
    <language>en</language>
  </params>

  <static>
    <entry id="1">
        <text-en>Hello</text-en>
    </entry>
    <entry id="2">
        <text-fr>Boujour</text-fr>
    </entry>
  </static>
</data>

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

您应该更改输入XML的结构并使用例如<text xml:lang="en">Hello</text>如果可以,那么你可以写<xsl:value-of select="//text[lang($language)]"/>

如果您无法更改输入XML的结构,请使用<xsl:value-of select="//*[local-name() = concat('text-', $language)]"/>