次の方法で共有


substring 関数

2 番目の引数で指定された位置で始まる、最初の引数の部分文字列、および 3 番目の引数で指定された長さを返します。

string substring(string, number, number?)

解説

最初の文字の位置は 1、2 番目の文字の位置は 2 のように、文字列内の文字は数値位置を持っていると見なされます。

3 番目の引数が指定されていない場合は、2 番目の引数で指定された位置から始まり、文字列の末尾に至る部分文字列を返します。

引数が文字列型でない場合は、string() 関数を使って引数を文字列に変換した後、変換の結果を評価します。

ヒント

この関数にノード セットを引数として渡し、文字列変換を行うと、予期しない結果が生じることがあります。詳細については、「string 関数」を参照してください。

この関数では、大文字と小文字が区別されます。

次の関数の呼び出しでは、"234" が返されます。

substring("12345",2,3)

次の関数の呼び出しでは、"2345" が返されます。

substring("12345",2)

返される部分文字列には、2 番目の引数の丸められた値と等しいか、それ以上の位置にある文字が含まれます。3 番目の引数が指定されている場合、2 番目の引数の丸められた値と 3 番目の引数の丸められた値の合計値よりも小さい位置にある文字が含まれます。上記の例で使用される比較と追加は、IEEE 754 規格の規則に従っています。数値の丸めは、round() 関数を呼び出した場合と同様に処理されます。

次の例では、例外的な事例について説明します。

substring("12345", 1.5, 2.6) の場合、"234" が返されます。

substring("12345", 0, 3) の場合、"12" が返されます。

substring("12345", 0 div 0, 3) の場合、"" が返されます。

substring("12345", 1, 0 div 0) の場合、"" が返されます。

substring("12345", -42, 1 div 0) の場合、"12345" が返されます。

substring("12345", -1 div 0, 1 div 0) の場合、"" が返されます。

上で説明した substring() 式の例を示します。

XML ファイル

なし。XSLT ファイルは自身を呼び出します。

XSLT ファイル (substring.xsl)

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
   substring("12345",2,3) = 
      <xsl:value-of select='substring("12345",2,3)'/><br/>
   substring("12345",2) = 
      <xsl:value-of select='substring("12345",2)'/><br/>
   substring("12345", 1.5, 2.6) = 
      <xsl:value-of select='substring("12345", 1.5, 2.6)'/><br/>
   substring("12345", 0, 3) = 
      <xsl:value-of select='substring("12345", 0, 3)'/><br/>
   substring("12345", 0 div 0, 3) = 
      <xsl:value-of select='substring("12345", 0 div 0, 3)'/><br/>
   substring("12345", 1, 0 div 0) = 
      <xsl:value-of select='substring("12345", 1, 0 div 0)'/><br/>
   substring("12345", -42, 1 div 0) = 
      <xsl:value-of select='substring("12345", -42, 1 div 0)'/><br/>
   substring("12345", -1 div 0, 1 div 0) = 
      <xsl:value-of select='substring("12345", -1 div 0, 1 div 0)'/>
</xsl:template>

</xsl:stylesheet>

書式付き出力

substring("12345",2,3) = 234 substring("12345",2) = 2345 substring("12345", 1.5, 2.6) = 234 substring("12345", 0, 3) = 12 substring("12345", 0 div 0, 3) = substring("12345", 1, 0 div 0) = substring("12345", -42, 1 div 0) = 12345 substring("12345", -1 div 0, 1 div 0) =

プロセッサ出力

<?xml version="1.0" ?> substring("12345",2,3) = 234<br /> substring("12345",2) = 2345<br /> substring("12345", 1.5, 2.6) = 234<br /> substring("12345", 0, 3) = 12<br /> substring("12345", 0 div 0, 3) = <br /> substring("12345", 1, 0 div 0) = <br /> substring("12345", -42, 1 div 0) = 12345<br /> substring("12345", -1 div 0, 1 div 0) =

参照

リファレンス

XML データ型リファレンス