XPath - Funções de String
A seguir está uma lista de funções XPath String -
S.No. | Descrição da função |
---|---|
1 | starts-with(string1, string2) Retorna verdadeiro quando a primeira string começa com a segunda string. |
2 | contains(string1, string2) Retorna verdadeiro quando a primeira string contém a segunda string. |
3 | substring(string, offset, length?) Retorna uma seção da string. A seção começa no deslocamento até o comprimento fornecido. |
4 | substring-before(string1, string2) Retorna a parte de string1 antes da primeira ocorrência de string2. |
5 | substring-after(string1, string2) Retorna a parte de string1 após a primeira ocorrência de string2. |
6 | string-length(string) Retorna o comprimento da string em termos de caracteres. |
7 | normalize-space(string) Apara o espaço inicial e final da string. |
8 | translate(string1, string2, string3) Retorna string1 após quaisquer caracteres correspondentes em string2 terem sido substituídos pelos caracteres em string3. |
9 | concat(string1, string2, ...) Concatena todas as strings. |
10 | format-number(number1, string1, string2) Retorna uma versão formatada de number1 após aplicar string1 como string de formato. string2 é uma string de localidade opcional. |
Exemplo
Este exemplo cria uma tabela do elemento <student> com seus nomes e comprimento dos nomes, iterando sobre cada aluno. Ele calcula o comprimento do nome do aluno após concatenar o nome e o sobrenome e, em seguida, imprime os detalhes do (s) aluno (s).
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>