、これは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"で済んだりと、色々良いことがあります。