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>