Jintrick.netagenda2003年10月アーカイブ → 2003年10月06日

Re: 2003/10/05(Sun.) - XML を練習してみる - CSS でイケてるデザインサイトリンク集2 を勝手に XML 化(4)

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


webmaster@jintrick.net
公開: 2003年10月06日
カテゴリ: XPath ,XSLT