2011-08-11 22 views
0

私はXSLプログラミングの初心者です。この問題を解決するのに私を助けてください。

は、それが2つのXSLの値を組み合わせて、フェッチすることが可能です:変数 例:

<xsl:variable name="path1" select="//path1"/> 
<xsl:variable name="path2" select="//path2/value"/> 

次に使用してそれらを結合:

<xsl:value-of select ="$path1/$path2"/> 

私は組み合わせて、パス1から値を取得したいですパス2からの結果 上記のコードを使用すると、予期しないトークン$エラーが発生する

他の方法がありますか?

+0

コードを表示します。 –

+0

いいえ、それは正しい方法ではありません。あなたが望むものをより明確に記述してください。そしておそらく、その解決策を見つけることができます。 –

+0

@empo:彼が何を望んでいるかは明らかだと思います。 '/ path2/value'のテキスト値は、ある他の要素名(' bar')であり、要素の下の2番目の名前によって与えられた要素ですつまり、彼は 'foo/bar'を見つけたいと思っています(そしてそれは価値があります)。 –

答えて

2

は、それはあなたが、おそらくそれはあなたが実際にこれらの変数のパスを格納していないことをここで指摘する価値がある

<xsl:value-of select="concat($path1,$path2)" /> 

を行うために探しているように聞こえるが、これらのパスが指すノード。すなわち$path1には//path1が含まれていませんが、そのノードに含まれる値はすべて含まれます。

あなたが実際にテキスト'//path1//path2/value'を望んでいた場合は、(それがテキスト値ではなく、XPathのだ示し、余分な'に注意してください)

<xsl:value-of select="path1" select="'//path1'" /> 
<xsl:value-of select="path2" select="'//path2/value'" /> 

を使用してパス変数を定義する必要があります。この場合同じ<xsl:value-ofの文では'//path1//path2/value'の出力が得られます。

//path1//path2/valueノードのコンテンツを実際に必要とする場合は、処理が煩雑で、実行しようとしていることを実行するためのより良い方法があります。

関連する問題