根据节点值选择document()

时间:2014-12-09 10:03:34

标签: xml xslt

我有几个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。

之外使用这些结构似乎无效 希望我可以理解地解释了我的痛苦。还有其他办法吗?

1 个答案:

答案 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" />