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>

Verifique a saída