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>