我有以下xml属性文件作为输入,
<Service>
<Provider>
<TEST1>http://example1.com</TEST1>
<TEST2>http://example2.com</TEST2>
<TEST3>http://example3.com</TEST3>
</Provider>
</Service>
在我的xslt中,基于传入的请求主机名(例如:https://test2service.example.com);使用包含函数我将环境值保存到变量。
<xsl:variable name="Environment">
<xsl:choose>
<xsl:when test="contains($ConsumerHost, 'test1')">
<xsl:text>TEST1</xsl:text>
</xsl:when>
<xsl:when test="contains($ConsumerHost, 'test2')">
<xsl:text>TEST2</xsl:text>
</xsl:when> ..........
现在基于环境变量值,我必须选择后端服务器。下面的代码不起作用。请建议。
<xsl:variable name="HOST" select="//Provider/($Environment)/text()" />
欢迎任何其他解决方案!感谢。
答案 0 :(得分:3)
请尝试使用此表达式...
<xsl:variable name="HOST" select="//Provider/*[local-name() = $Environment]/text()" />