string-length()関数
・引数で指定した文字列の文字数(数値)を返す。
・数値は''で囲わなくても文字数を返す(例1)。
・全角文字、半角文字は同じ扱いで1文字に。
・全角空白、半角空白も同じ扱いで、空白数だけ数えられる(例2,5,6,9)。
・文字が無い場合 0 が返される(例7)。
・引数を省略した場合、コンテキストノードの文字数を返す(例8)。
・関数の返り値は数値なので計算に利用できる(例12,13)。
[string-length()関数](下のフレームに)
XMLソース
<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="string01.xsl"?>
<root>
<title>string-length()関数</title>
<info>string-length()関数の表示テスト</info>
<data>表示テスト
<test1 atr="半角文字">123 abc d</test1>
<test2 atr="全角文字">大阪日本橋へようこそ!!</test2>
<test3 atr="全半角文字">good!日本橋</test3>
</data>
<end>以上です(2003/12/6)</end>
</root>
XSLソース
<?xml version="1.0" encoding="Shift_Jis"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS"/>
<xsl:template match="/">
<center><H3><xsl:value-of select="root/title"/></H3></center>
<xsl:apply-templates select="root/data"/>
</xsl:template>
<xsl:template match="data">
例1(123456)---→ <xsl:value-of select="string-length(123456)"/><br/>
例2('123 45 6')---→ <xsl:value-of select="string-length('123 45 6')"/><br/>
例3('123abcイロハ')---→ <xsl:value-of select="string-length('123abcイロハ')"/><br/>
例4(関数)---→ <xsl:value-of select="string-length(関数)"/><br/>
例5(' 関 数 ')---→ <xsl:value-of select="string-length(' 関 数 ')"/><br/>
例6(' ')---→ <xsl:value-of select="string-length(' ')"/><br/>
例7('')---→ <xsl:value-of select="string-length('')"/><br/>
例8()---→ <xsl:value-of select="string-length()"/><br/>
例9(test1)---→ <xsl:value-of select="string-length(test1)"/><br/>
例10(test2)---→ <xsl:value-of select="string-length(test2)"/><br/>
例11(test3/@atr)---→ <xsl:value-of select="string-length(test3/@atr)"/><br/>
<hr/>
例12(test1+test3/@atr)---→ <xsl:value-of select="string-length(test1)+string-length(test3/@atr)"/><br/>
例13(test2*'計算せよ')---→ <xsl:value-of select="string-length(test2)*string-length('計算せよ')"/><br/>
</xsl:template>
</xsl:stylesheet>
end(03/12/6)