2016-07-13 7 views
1

私は、次のXMLプロパティは、着信要求のホスト名(例:https://test2service.example.com)に基づいて、私のXSLTでxpath xsltで変数を使用するには?

<Service> 
    <Provider> 
     <TEST1>http://example1.com</TEST1> 
     <TEST2>http://example2.com</TEST2> 
     <TEST3>http://example3.com</TEST3> 
    </Provider> 
</Service> 

、入力としてファイルしています。私は変数に環境値を保存しています。

<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()" /> 

他の解決方法もあります。ありがとう。

答えて

2

は...代わりに

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

出力しない、そのヌル – user2663020

+0

式が結果を生成する必要がありますが、この表現を試してみてください。例としてhttp://xsltransform.net/jyRYYjrを参照してください。出力が得られない場合は、詳細を表示するために回答を拡大する必要があります。変数ConsumerHostがどのように設定されているのか、あるいは名前空間の問題が考えられる可能性があります。 –

+0

私はそれが動作することを確認します。いい答え! –

関連する問題