変数をXPath式の一部として使用したいと考えています。変数をXPath選択の一部として使用する
私の問題は、msxslノードセット機能...確かではないかもしれません。しかし、その雲があなたの判断を下さないようにしてください...
私はコンテンツファイルをロードするために.NET関数を使用しています。これは、オーダーメイドのXMLコンテンツで渡されます。 @file
はXMLファイルになります。
インクルードは、ページ上に座ってオーダーメイドのXMLは次のようになります。XSLがどのように見える
<control name="import" file="information.xml" node="r:container/r:group[@id='set01']/r:item[1]" />
:
<xsl:variable name="document">
<xsl:copy-of select="ext:getIncludedContent(@file)" />
</xsl:variable>
私はそのように、私は照会することができますノードセットにこれを翻訳しています文書
<xsl:variable name="preset-xml" select="msxsl:node-set($document)" />
私のようなルックスにロードしていますソースファイル:
<container>
<group id="set01">
<item>value01</item>
<item>value02</item>
<item>value03</item>
</group>
<group id="set02">
<item>value04</item>
<item>value05</item>
</group>
</container>
この時点までは動作します。ソースファイルがXMLとして渡されて出力されるのがわかります。
私の問題は、コンテンツからフィードされたXPath式をソースファイルに照会しようとしているときに発生します。
は、私が試してみた:それはXMLでロードの直接の子として@nodeを探しとしては機能しません明らかに
<xsl:value-of select="$preset-xml/@node" />
。
私が試してみた:
<xsl:variable name="node" select="@node" />
<xsl:value-of select="$preset-xml/$node" />
をしかし、それは第二の可変が好きではありません。
私はconcat($ preset-xml、 '/'、$ node)を試しましたが、それでも結果内のドキュメント全体が描画されます。
<xsl:value-of select="$preset-xml/r:container/r:group[@id='set01']/r:item[1]" />
正しくvalue01
スルーもたらししかし、それは、ハードコード化されたソリューションです:私は現時点では、この作業を取得することができます
唯一の方法は、テンプレート内の完全な表現を書き出すことです。 コンテンツファイルから宣言されたパラメータを使用して、あらゆる種類のインポートされたコンテンツに合わせてコンテンツから操作できるソリューションを開発したいと考えています。
p.s.技術管理者がXSLの後のバージョンをサポートするようにMicrosoftのパーサーを変更しないため、私はXSLT 1.0を使用しています。
'$ preset-xml/@ node'は子ノードを探していません。それは属性を探しています。 –
http://stackoverflow.com/questions/1551526/is-it-possible-to-use-a-dynamic-xpath-expression-in-a-xslt-style-sheet –
うん、申し訳ありません。軽いタイプミス。ロードされたファイルの属性を探しています。しかしどちらの方法でも、その方法はまだ機能しません。まだ少しぼんやり! – Kevin