2011-11-30 10 views

答えて

3

これは、XPathの非常に素晴らしい無効な行は次のようになります。

決算 )ある
"not(following::lieferant/text()0current()/text" 

?これは、次のlieferant要素(?ドイツ)のテキストは()のforeach内の現在のノード(のテキストと等しくないかどうかを確認するために意味するでしょう

"not(following::lieferant/text() = current()/text())" 

はたぶん、あなたは、これが意味しましたか? )

しかし、これらは推測に過ぎません。

編集:

"not(following::lieferant/text() = current()/text)" 

ですから、そのテキストコンテンツがあなたのテキスト要素の内容と同じではありませんあなたは(以下:: lieferant)に現在ある要素を、以下のすべてのlieferantの要素を選択すると言います現在の()ノード。

+0

はい、私はそれを更新し、それはドイツ語です:) –

+0

あなたの答えに感謝します。次の要素は何ですか? –

+0

@BabakBst現在の()ノードにテキスト要素がありますか? – FailedDev

1

は非常に単純

<xsl:if test="not(following::lieferant/text()=current()/text)"> 
    <!-- Processing here ... --> 
</xsl:if> 

意味:のtext子どもたちの一部と同じ文字列値を持つfollowing::lieferant/text()ノードがイマイチ場合

"Processing here ..."のみを実行します。現在の(現在のテンプレートと一致するか、または最も内側のxsl:for-each命令によって選択され処理された)現在のノードです。

つまり、同じ文字列値を持つfollowing::lieferant/text()ともう1つのcurrent()/textというノードのペアはありません。

提供されるコードはためのミスかもしれない:

<xsl:if test="not(following::lieferant/text()=current()/text())"> 
    <!-- Processing here ... --> 
</xsl:if> 

この場合、上記の説明は、指定された条件が今であることを除いて、依然として正しい:ノードのペアが存在しません、 1つはfollowing::lieferant/text()、もう1つはcurrent()/text()です。両方とも同じ文字列値を持ちます。

つまり、現在一致している(または最も内側のノードxsl:for-eachによって選択されている)テキストノードの子ノードのいずれも、following::lieferant/text()ノードの文字列値と同じ文字列値を持ちません。

関連する問題