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>