丁度良い事例なので鳩丸更新履歴から引用しますが: ちなみに foo要素と foo要素の間にある CRLF も一つのノードとして扱われていて、position() はそれもカウントした値を返している模様。 「HTML鳩丸倶楽部」更新履歴(2001-10-04) より position()関数が改行を数えてしまう原因は、「カレントノードリスト」に改行が含まれてしまっているからです。 <xsl:template match="foo"> <xsl:if test="position() mod 4 = 2"> …… </xsl:if> …… </xsl:template> このテンプレートが処理されている時、カレントノード(処理中のノード)は一つのfoo要素です。ではカレントノードリストはなんでしょうか。 実は、この例を見ただけでは分かりません。一般に、この「テンプレート