2017-11-24 5 views
0
私は入力XMLファイルで構成XMLファイルに記述された多くのXPath queryes実行しようとしている

はDYNです:評価()内の作動で<xsl:for-each>

<results> 
<xsl:for-each select="$config_file/queries/*"> 

    <xsl:variable name="curr_item_name" select="name()"></xsl:variable> 
    <xsl:variable name="curr_xpath_query" select="."></xsl:variable> 

    <xsl:element name="{$curr_item_name}"> 
     <xsl:value-of select="dyn:evaluate($curr_xpath_query)" /> 
    </xsl:element> 
</xsl:for-each> 
</results> 

は私が期待していたがxpathの評価結果を持つxml要素の結果の子要素が多く(クエリの子要素の数だけ)

正しく名前が付けられたすべてのタグを取得します。

誰でも私を助けますか?プロセッサーとして、私はXalan eclipse組み込みプロセッサーを使用しています(今のところ)。

おかげで、 ラウラ

+0

foreachループの内側と外側に絶対xpath評価ステートメントを書くと、ループ外のものがうまく動作し、内側のものは空の結果を返します。 – Laura

+0

ソースドキュメント、予想される出力、および実際の出力を表示してください。 –

答えて

0

だから、どのノード、あなたのXPath評価のためのコンテキストノードになりたいですか?現在のところ、$config_file/queries/*で処理する要素であり、XPath式を提供するために使用します。変数にXPath式を格納し、コンテキストをfor-eachまたはapply-templatesで、表示していない他のノードに変更し、以前に変数に格納していない場合はアクセスできないようにすることができます。では、グローバル変数があると仮定しましょう。

<xsl:variable name="main-doc" select="/"/> 

<xsl:variable name="path-exp" select="."/> 
<xsl:for-each select="$main-doc//foo"> 
    <xsl:value-of select="dyn:evaluate($path-exp)" /> 
</xsl:for-each> 
関連する問題