XPath - Hachas

Como la ruta de ubicación define la ubicación de un nodo utilizando una ruta absoluta o relativa, los ejes se utilizan para identificar elementos por su relación como parent, child, sibling, etc. Los ejes se denominan así porque se refieren al eje en el que los elementos se encuentran en relación con un elemento.

A continuación se muestra la lista de varios valores de eje.

S.No. Eje y descripción
1

ancestor

Representa los antepasados ​​del nodo actual, que incluyen a los padres hasta el nodo raíz.

2

ancestor-or-self

Representa el nodo actual y sus antepasados.

3

attribute

Representa los atributos del nodo actual.

4

child

Representa a los hijos del nodo actual.

5

descendant

Representa los descendientes del nodo actual. Los descendientes incluyen a los hijos del nodo hasta el nodo hoja (no más hijos).

6

descendant-or-self

Representa el nodo actual y sus descendientes.

7

following

Representa todos los nodos que vienen después del nodo actual.

8

following-sibling

Representa los siguientes hermanos del nodo de contexto. Los hermanos están al mismo nivel que el nodo actual y comparten su padre.

9

namespace

Representa el espacio de nombres del nodo actual.

10

parent

Representa el padre del nodo actual.

11

preceding

Representa todos los nodos que vienen antes del nodo actual (es decir, antes de su etiqueta de apertura).

12

self

Representa el nodo actual.

A continuación se muestran algunos ejemplos sobre los usos de los ejes.

firstname - seleccione el nombre relacionado con los nodos de los estudiantes.

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

Ejemplo

En este ejemplo, creamos un documento XML de muestra students.xml y su documento de hoja de estilo students.xsl que usa las expresiones XPath.

A continuación se muestra el XML de muestra utilizado.

estudiantes.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>

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>  
            <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>

Verificar la salida