、これはtest="./update[. =$trigger]"
test="child::update[string(current()) = string($trigger)]"
とすべきでは。
述語内の.
(self::node()
)はコンテクストノードであるupdate
要素です。コンテクストノードが変更された述語内において、カレントノードはcurrent()
で参照することができます(正確にはカレントノード一つだけを含むノード集合)。
因みに<xsl:apply-templates select="child::thumbnail/child::website[string(child::country) = 'Japanese']" />
とすれば、子供のcountry要素の文字列値が'Japanese'であるwebsite要素だけをカレントノードリストにすることができます。<xsl:apply-templates select="./thumbnail/website">..</xsl:apply-templates>
としてしまうと、country要素の文字列値が'Oversea'であるwebsite要素もカレントノードリストに含まれることになり、website要素用のテンプレートが評価されるプロセスが無駄になってしまいます。別にどうでも良いことかもしれませんが、そうするとパラメータを渡す必要が無いので、先の
、これはtest="./update[. =$trigger]"
test="update"
で済んだりと、色々良いことがあります。