XPath - eixos

Como o caminho de localização define a localização de um nó usando caminho absoluto ou relativo, os eixos são usados ​​para identificar os elementos por sua relação, como parent, child, sibling, etc. Os eixos são nomeados assim porque se referem aos eixos nos quais os elementos estão localizados em relação a um elemento.

A seguir está a lista de vários valores do eixo.

S.No. Eixo e descrição
1

ancestor

Representa os ancestrais do nó atual, que incluem os pais até o nó raiz.

2

ancestor-or-self

Representa o nó atual e seus ancestrais.

3

attribute

Representa os atributos do nó atual.

4

child

Representa os filhos do nó atual.

5

descendant

Representa os descendentes do nó atual. Os descendentes incluem os filhos do nó até o nó folha (não há mais filhos).

6

descendant-or-self

Representa o nó atual e seus descendentes.

7

following

Representa todos os nós que vêm depois do nó atual.

8

following-sibling

Representa os seguintes irmãos do nó de contexto. Os irmãos estão no mesmo nível que o nó atual e compartilham seu pai.

9

namespace

Representa o namespace do nó atual.

10

parent

Representa o pai do nó atual.

11

preceding

Representa todos os nós que vêm antes do nó atual (ou seja, antes de sua tag de abertura).

12

self

Representa o nó atual.

A seguir estão alguns exemplos sobre o uso de eixos.

firstname - selecione o primeiro nome relacionado aos nós de alunos.

<p><xsl:value-of select = "firstname"/></p>
<xsl:value-of select = "/class/student/preceding-sibling::comment()"/>

Exemplo

Neste exemplo, criamos um documento XML de amostra students.xml e seu documento de folha de estilo students.xsl que usa as expressões XPath.

A seguir está o XML de amostra usado.

students.xml

<?xml version = "1.0"?>
<?xml-stylesheet type = "text/xsl" href = "students.xsl"?>
<class>
   <!-- Comment: This is a list of student -->
   <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>  
            <xsl:value-of select = "/class/student/preceding-sibling::comment()"/>
            <br/>
            <xsl:text>First Student: </xsl:text>
            <xsl:value-of select = "/class/student/child::firstname" />    
         </body>
      </html>
   </xsl:template>
</xsl:stylesheet>

Verifique a saída