2003年11月23日(日)更新 |
【ノード集合関数】 count
たけち: 今回は、ノード集合関数のひとつ、count関数について学ぼうね。 さらら: はい。 (^ ^* たけち: countは、指定したノード集合内のノードの数を取得するのに使うんだ。 さらら: えっ。。。(? ?) |
たけち: たとえばね、ある要素ノードの数を数えたりするのに使えるんだよ。 さらら: あっ、そうなんだ。 たけち: count関数は、どう書くのかをつぎに載せておくね。
|
さらら: これって、どういう意味なの? たけち: count(ノードセット)と書いてcount関数を呼ぶと、リターン値として、ノードの数が整数値として返される、という意味なんだよ。 さらら: そうなんだ。。。 たけち: じつは、この書き方は、このページ(たのしいXML)での書き方なんだ。だから、標準的な書き方、という訳じゃないから、気をつけてね。 |
count関数の使用例
さらら: なんとなく分かったけど、やっぱりサンプルが無いとよく分からないわ。 たけち: そうだね。じゃあ、簡単なサンプルを見てみよう。 さらら: はい。 (^ ^* たけち: 次の【poem.xml】を見て。 |
【poem.xml】 |
---|
<?xml version="1.0" encoding="Shift_JIS" ?> |
さらら: 歌が6首載っているわ。pno属性が歌番号で、poet属性で歌人名を示しているのね。 たけち: そうだね。じゃあ、このxmlデータを元にして、
さらら: えぇ。 たけち: 次の【count.xsl】を見て。 |
XSLTスタイルシート: count関数の使用例 |
---|
<?xml version="1.0" encoding="Shift_JIS"?> |
■count(poem)
さらら: 二箇所でcount関数を使っているのね。。。。最初の たけち: そうなんだね。カレントノードがmanyosyu要素ノードだから、count(poem)のpoemで、manyosyu要素ノードのすべてのpoem子要素ノードを示しているんだね。 さらら: そっか〜。。。う〜ん、と。じゃあ、二つ目のは。。。 |
■count(poem[@poet=$person])
たけち: 二つ目のcount関数は、"count"という名前のテンプレートで使われているね。この、テンプレートは、3個所で呼び出されているね。 さらら: あっ、額田王、持統天皇、そして柿本人麻呂の値を"person"という名前のパラメタにセットして呼び出しているのね。 たけち: そうそう。だから、 さらら: そうなんだ。。。じゃあ、たとえば、 |
たけち: そうなんだね。じゃあ、このXSLTスタイルシートを"count.xsl"というファイルにして、実際にどうなるか見てみようね。次のテキストをクリックしてみて。 |
さらら: あっ、こんな風に表示されるのね。なるほど〜。 たけち: よかった。じゃあ、今回はこれでおしまい。 さらら: はい。ありがと。 (*^ ^*) →次は、current関数です (^ ^; |