2004年02月08日(日)更新 |
■substring-after/substring-beforeで文字列の一部の文字列を得る
たけち: 今回は、文字列の一部の文字列を得るためのsubstring-after関数とsubstring-before関数について学ぼうね。 さらら: あれ? 文字列の中から文字列を取り出すのは前回のsubstring関数じゃなかったの? たけち: うん、たしかにそうだね。前回のsubstring関数は、指定した文字列の何文字目から何文字目までの文字列を得るためのものだったね。 さらら: えぇ。 たけち: ここで学ぶsubstring-after関数とsubstring-before関数で、文字列の中の指定した文字の前後の文字列を取ってくるものなんだ。たとえば、ある文字列の":"(コロン)の前の文字列を取りたいとか、","(カンマ)の後ろの文字列を取りたいとか、ね。 さらら: あっ、そうなのね。そういうのって、何文字目か決まっていないことがあるものね。 |
|
たけち: そうなんだね。じゃ、まず、substring-after関数とsubstring-before関数は、どう書くのかをつぎに載せておくね。
さらら: 引数として指定した文字列値から、指定した「文字列取出し用文字列値」から後や前の文字列が得られるのね。 たけち: そうそう。そんなに難しくはないよね。substring-after関数で指定した文字列の後ろの文字をsubstring-before関数で指定した文字列の前の文字を取ってくるんだね。 さらら: あっ、「文字列取出し用文字列値」って、一文字じゃなくてもいいのね。 たけち: そうなんだ。 |
■万葉集データの例
たけち: じゃ、さっそく今回のサンプルを見てみようね。まずは、万葉集のXMLデータ例を次に載せるね。前回のsubstringで使ったものとほとんど同じだよ。 さらら: は〜い。 |
|
xmlデータ例 【substring2.xml】 |
---|
<?xml version="1.0" encoding="Shift_JIS"?> |
さらら: 作者と歌が並んでいるわね。これをどうするの? たけち: 今回は、歌人の漢字とかなを分けて表示してみよう。
さらら: あっ、分かった。漢字は、"("(かっこ)の前にあるから
たけち: そうだね。じゃあ、「かな」の部分は? さらら: これも簡単ね。かなは、"("(かっこ)の後にあるから。。。あれ? それだと最後の")"(かっこ)も取れちゃうから、それが残っちゃうわ。こんなときはどうしたらいいの? たけち: うん。この場合だと、 さらら: あっ、なるほど。でも、具体的にはどう書いたらいいのかしら。 |
|
たけち: 次のように書けばできるよ。
さらら: なるほど。分かったわ!! |
■substring-after/beforeを使ったXSLTスタイルシートの例
たけち: じゃ、さっそく今回のXSLTスタイルシートのサンプルを見てみようね。【substring.xsl】を次に載せるね。 |
XSLTスタイルシート例 【substring2.xsl】 |
---|
<?xml version="1.0" encoding="Shift_JIS"?> |
さらら: substring-after関数とsubstring-before関数のところはさっき説明してくれた内容そのままね。 たけち: そうだね。 さらら: 実際、どうなるのか早くみてみたいわ。 |
|
たけち: じゃあ、このXSLTスタイルシートを"substring2.xsl"というファイルにして、IEで表示してみようね。次のテキストをクリックしてみて。 |
さらら: 思ったとおりに表示されたわ。 たけち: よかったね。今回はこれでおしまい。 さらら: は〜い。ありがと。 →文字列関数はtranslate関数で終わりです。。。 (^ ^; |