XPath - Funzioni stringa

Di seguito è riportato un elenco di funzioni stringa XPath:

S.No. Descrizione della funzione
1

starts-with(string1, string2)

Restituisce vero quando la prima stringa inizia con la seconda.

2

contains(string1, string2)

Restituisce vero quando la prima stringa contiene la seconda stringa.

3

substring(string, offset, length?)

Restituisce una sezione della stringa. La sezione inizia con offset fino alla lunghezza fornita.

4

substring-before(string1, string2)

Restituisce la parte di stringa1 precedente alla prima occorrenza di stringa2.

5

substring-after(string1, string2)

Restituisce la parte di stringa1 dopo la prima occorrenza di stringa2.

6

string-length(string)

Restituisce la lunghezza della stringa in termini di caratteri.

7

normalize-space(string)

Taglia lo spazio iniziale e finale dalla stringa.

8

translate(string1, string2, string3)

Restituisce stringa1 dopo che tutti i caratteri corrispondenti in stringa2 sono stati sostituiti dai caratteri in stringa3.

9

concat(string1, string2, ...)

Concatena tutte le stringhe.

10

format-number(number1, string1, string2)

Restituisce una versione formattata di numero1 dopo aver applicato stringa1 come stringa di formato. string2 è una stringa locale opzionale.

Esempio

Questo esempio crea una tabella di elementi <student> con i loro nomi e la lunghezza dei nomi, ripetendo su ogni studente. Calcola la lunghezza del nome dello studente dopo aver concatenato il nome e il cognome e quindi stampa i dettagli dello studente.

students.xml

<?xml version = "1.0"?>
<?xml-stylesheet type = "text/xsl" href = "students.xsl"?>
<class>
   <student rollno = "393">
      <firstname>Dinkar</firstname>
      <lastname>Kad</lastname>
      <nickname>Dinkar</nickname>
      <marks>85</marks>
   </student>
   <student rollno = "493">
      <firstname>Vaneet</firstname>
      <lastname>Gupta</lastname>
      <nickname>Vinni</nickname>
      <marks>95</marks>
   </student>
   <student rollno = "593">
      <firstname>Jasvir</firstname>
      <lastname>Singh</lastname>
      <nickname>Jazz</nickname>
      <marks>90</marks>
   </student>
</class>

students.xsl

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

   <xsl:template match = "/">
      <html>
         <body>
            <h2>Students</h2>
				
            <table border = "1">
               <tr bgcolor = "#9acd32">	
                  <th>Name</th>     
                  <th>Length of Name</th>
               </tr>
					
               <xsl:for-each select = "class/student">
				
                  <tr>
                     <td><xsl:value-of select = "concat(firstname,' ',lastname)"/></td>
                     <td><xsl:value-of select = "string-length(concat(firstname,' ',lastname))"/></td>
                  </tr>	
               </xsl:for-each>
            </table>
         </body>
      </html>
   </xsl:template>

</xsl:stylesheet>

Verifica l'output