XML 文档的 XSLT 条件变量赋值
XSLT conditional variable assignment of XML document
在我的 XSLT 样式表中,我希望将一个 XML 文档对象分配给一个全局变量。 XML 文档的名称各不相同,因此分配应该是有条件的。不同XML文档的名称如下:screenlabels0.xml、screenlabels1.xml等。这些名称中的数字等于传递给参数ui_language的值样式表。只要我按如下方式硬编码作业,就可以正常工作:
<xsl:variable name="screenlabels" select="document('..\xslt\screenlabels1.xml')"/>
稍后在样式表中,我可以通过以 $screenlabels 开头的 Xpath 寻址此对象的节点(无需对其应用节点集)。
到目前为止,任何对此进行条件化的尝试都失败了。
首先我注意到下面的代码显然不等于上面的单行代码:
<xsl:variable name="screenlabels">
<xsl:value-of select="document('..\xslt\screenlabels1.xml')"/>
</xsl:variable>
看来我无法以相同的方式处理这个变量,在对其应用节点集之后也是如此。将 value-of 更改为 copy-of 似乎也无济于事。使用 choose 结构的上述条件变体当然也不起作用。
我在单行赋值中简单地使用 ui_language 参数的替代方法(如下所示)也不起作用。任何人有任何想法如何做到这一点,或者我在测试中是否马虎?非常感谢您的帮助。
<xsl:variable name="screenlabels" select="document('..\xslt\screenlabels{$ui_language}.xml')"/>
你试过了吗concat
?
<xsl:variable name="screenlabels"
select="document(concat('..\xslt\screenlabels',$ui_language,'.xml'))"/>
在我的 XSLT 样式表中,我希望将一个 XML 文档对象分配给一个全局变量。 XML 文档的名称各不相同,因此分配应该是有条件的。不同XML文档的名称如下:screenlabels0.xml、screenlabels1.xml等。这些名称中的数字等于传递给参数ui_language的值样式表。只要我按如下方式硬编码作业,就可以正常工作:
<xsl:variable name="screenlabels" select="document('..\xslt\screenlabels1.xml')"/>
稍后在样式表中,我可以通过以 $screenlabels 开头的 Xpath 寻址此对象的节点(无需对其应用节点集)。 到目前为止,任何对此进行条件化的尝试都失败了。 首先我注意到下面的代码显然不等于上面的单行代码:
<xsl:variable name="screenlabels">
<xsl:value-of select="document('..\xslt\screenlabels1.xml')"/>
</xsl:variable>
看来我无法以相同的方式处理这个变量,在对其应用节点集之后也是如此。将 value-of 更改为 copy-of 似乎也无济于事。使用 choose 结构的上述条件变体当然也不起作用。 我在单行赋值中简单地使用 ui_language 参数的替代方法(如下所示)也不起作用。任何人有任何想法如何做到这一点,或者我在测试中是否马虎?非常感谢您的帮助。
<xsl:variable name="screenlabels" select="document('..\xslt\screenlabels{$ui_language}.xml')"/>
你试过了吗concat
?
<xsl:variable name="screenlabels"
select="document(concat('..\xslt\screenlabels',$ui_language,'.xml'))"/>