2004年01月18日(日)更新 |
■containsで文字列をチェック
たけち: 今回は xsl:ifに関係があることをやるね。テキストの内容によって表示を変えよう その-2 xsl:ifってところでさららの歌だけを表示したよね。 さらら: そうだったわね。私の歌かどうかをxsl:ifで調べたわよね。
たけち: そうなんだけど、ちょっと長いよね。それに、もっと長いテキストを調べるのにいちいち全部を書いていられないよね。 さらら: そういわれればそうね。。。。。あっ、もっといい方法があるのね、そうなんでしょ!? たけち: そうなんだ。containsを使うともう少し簡単に調べられるよ。 |
さらら: じゃあ、今回はcontains、というわけね。 たけち: そうなんだ。じゃ、まず、contains関数は、どう書くのかをつぎに載せておくね。
さらら: "文字列1"と"文字列2"があるけど、どっちがどうなの? たけち: "文字列1"に"文字列2"が含まれているかどうかを調べて、その結果を論理値として返すんだ。 さらら: ふ〜ん。論理値って真か偽かって、あれね。 たけち: そうそう。で、"文字列1"に"文字列2"が含まれている場合には"true"(真)を、含まれていない場合には"false"(偽)を返すんだね。 |
■test="contains(poet, '持統')"
さらら: も少し具体的に説明してくれない? たけち: あっ、そうだね。。。。じゃぁ、図で例を説明するね。 |
たけち: 図でわかるように、containsでは、指定した文字列があるか無いかがわかるんだね。 さらら: あっ、そういうことなのね。。。。わかったわ、前のサンプルだと全部の文字列を指定していたけど、containsを使うと、これだけ調べれば大丈夫だという「文字列」を指定すればいいのね!! たけち: そうそう。きっと、もう分かったね。じゃぁ、今回のサンプルを見てみよう。contains関数を使っている以外はconcat関数でのサンプルとほぼ同じだからね。 |
xmlデータ |
---|
<?xml version="1.0" encoding="Shift_JIS"?> |
XSLTスタイルシート |
---|
<?xml version="1.0" encoding="Shift_JIS"?> |
さらら: あれっ? 最初の図での説明のときにはcontainsの中は、"(ダブルコーテーション)だったのに、このXSLTスタイルシートでは、'(シングルコーテーション)になっているけど・・・・ たけち: あっ、これはね、test=の右側に書く内容が"(ダブルコーテーション)で囲まれるから、その中のcontainsの指定に'(シングルコーテーション)を使っているんだ。 さらら: あっ、そうなのね。 |
たけち: じゃあ、このXSLTスタイルシートを"contains.xsl"というファイルにして、実際にどうなるか見てみようね。次のテキストをクリックしてみて。 |
さらら: あっ、出た出た!! containsを使うと、ある文字列1に、指定した文字列2があるかどうかを調べるのに便利ね。 たけち: うん。そうだよね。じゃぁ、今回はこれでおしまい。 さらら: はい。ありがと。 (*^ ^*) →次はformat-numberです。。。。。 (^ ^; |