如何在xpath xslt中使用变量?

时间:2016-07-13 22:20:29

标签: xml variables xslt xpath

我有以下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()" />

欢迎任何其他解决方案!感谢。

1 个答案:

答案 0 :(得分:3)

请尝试使用此表达式...

<xsl:variable name="HOST" select="//Provider/*[local-name() = $Environment]/text()" />