XPath - Funciones de cadena

La siguiente es una lista de funciones de cadena XPath:

S.No. Función descriptiva
1

starts-with(string1, string2)

Devuelve verdadero cuando la primera cadena comienza con la segunda cadena.

2

contains(string1, string2)

Devuelve verdadero cuando la primera cadena contiene la segunda cadena.

3

substring(string, offset, length?)

Devuelve una sección de la cadena. La sección comienza en el desplazamiento hasta la longitud proporcionada.

4

substring-before(string1, string2)

Devuelve la parte de string1 antes de la primera aparición de string2.

5

substring-after(string1, string2)

Devuelve la parte de string1 después de la primera aparición de string2.

6

string-length(string)

Devuelve la longitud de la cadena en términos de caracteres.

7

normalize-space(string)

Recorta el espacio inicial y final de la cuerda.

8

translate(string1, string2, string3)

Devuelve cadena1 después de que los caracteres coincidentes de cadena2 hayan sido reemplazados por los caracteres de cadena3.

9

concat(string1, string2, ...)

Concatena todas las cadenas.

10

format-number(number1, string1, string2)

Devuelve una versión formateada de number1 después de aplicar string1 como una cadena de formato. string2 es una cadena de configuración regional opcional.

Ejemplo

Este ejemplo crea una tabla de elementos <student> con sus nombres y la longitud de los nombres, iterando sobre cada estudiante. Calcula la longitud del nombre del estudiante después de concatenar el nombre y el apellido y luego imprime los detalles del estudiante.

estudiantes.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>

estudiantes.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>

Verificar la salida