我有几个XML文件(content.xml)。一个包含实际内容,另一个包含用于翻译的文本信息(翻译_ * .xml,例如translation_EN.xml)。
content.xml包含一个节点,其中包含有关语言的信息,例如
<language>EN</language>
在content.xml的开头我声明了一个变量,将它与document()函数一起使用
<xsl:variable name="trans">translation_EN.xml</xsl:variable>
我正在尝试编写select和if构造,以根据content.xml中的节点值更改变量中的EN。但是,在xsl:template。
之外使用这些结构似乎无效 希望我可以理解地解释了我的痛苦。还有其他办法吗?答案 0 :(得分:1)
这里缺少很多细节,但是说你有以下形式的输入XML:
<content>
<language>EN</language>
<item/>
<item/>
</content>
您可以将全局变量定义为:
<xsl:variable name="trans-doc" select="document(concat('translation_', /content/language, '.xml'))" />
并使用它从名为&#34; translation_EN.xml&#34;的外部XML文档中检索数据,例如:
<xsl:value-of select="$trans-doc/root/item" />