XSLT スタイルシートに取り組んでいます。たくさんの子を持つノード (ノード A) があり、別のノード (ノード B) の子をループしています。ノード B の子がノード A の子でもあるたびに何かをしようとしているので、次のコードがあります。
<xsl:if test="$prodbins/bin[./text()=/root/Line[1]/Element[6]/text()]">
しかし、それは機能しません (テストは失敗し、式は false を返します)、式の左辺と右辺が別々に評価された場合に等しいにもかかわらずです。
しかし、私がこれを行うとき:
<xsl:variable name="curbin" select="/root/Line[1]/Element[6]/text()"/>
<xsl:if test="$prodbins/bin[./text()=$curbin]">
式は true と評価されます。期待した結果を得るために $curbin 変数を使用する必要があるのはなぜですか?