XQuery string length Function

Education is not limited to just classrooms. It can be gained anytime, anywhere... - Ravi Ranjan (M.Tech-NIT)

XQuery string-length() Function

The XQuery string-length function is used to get the length of a string.

string-length($string as xs:string) as xs:integer  

Parameter explanation:

$string: It specifies the provided string.


XQuery string-length Example

Let's take an example to demonstrate the usage of XQuery string-length function. Take an XQuery expression named "books.xqy", having the following code.

XQuery Expression:

books.xqy:

  1. let $bookTitle :"Java Programming"  
  2. let $size :string-length($bookTitle)  
  3. return  
  4.    <result>     
  5.       <size>{$size}</size>  
  6.    </result>  

Create a Java based XQuery executor program to read the books.xqy, passes it to the XQuery expression processor, and executes the expression. After that the result will be displayed.

XQueryTester.java

  1. import java.io.File;  
  2. import java.io.FileInputStream;  
  3. import java.io.FileNotFoundException;  
  4. import java.io.InputStream;  
  5.   
  6. import javax.xml.xquery.XQConnection;  
  7. import javax.xml.xquery.XQDataSource;  
  8. import javax.xml.xquery.XQException;  
  9. import javax.xml.xquery.XQPreparedExpression;  
  10. import javax.xml.xquery.XQResultSequence;  
  11.   
  12. import com.saxonica.xqj.SaxonXQDataSource;  
  13.   
  14. public class XQueryTester {  
  15.    public static void main(String[] args){  
  16.       try {  
  17.          execute();  
  18.       }  
  19.         
  20.       catch (FileNotFoundException e) {  
  21.          e.printStackTrace();  
  22.       }  
  23.         
  24.       catch (XQException e) {  
  25.          e.printStackTrace();  
  26.       }  
  27.    }  
  28.   
  29.    private static void execute() throws FileNotFoundException, XQException{  
  30.       InputStream inputStream = new FileInputStream(new File("books.xqy"));  
  31.       XQDataSource ds = new SaxonXQDataSource();  
  32.       XQConnection conn = ds.getConnection();  
  33.       XQPreparedExpression exp = conn.prepareExpression(inputStream);  
  34.       XQResultSequence result = exp.executeQuery();  
  35.        while (result.next()) {  
  36.          System.out.println(result.getItemAsString(null));  
  37.       }  
  38.    }      
  39. }  

Execute XQuery against XML

Put the above both files to a same location. We put them on desktop in a folder name XQuery13. Compile XQueryTester.java using console. You must have JDK 1.5 or later installed on your computer and classpaths are configured.

Compile:

javac XQueryTester.java

Execute:

java XQueryTester

Output:

XQUERY String length function 1

The above example specifies that the given string-length is 16. Space is treated as length character.