我是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>
感谢您的帮助!
答案 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)]"/>
。