XPath

Concepto


XPath es un estándar W3C diseñado especialmente para navegar y localizar nodos dentro de documentos XML y constituye la base fundamental de XSLT. Todas las expresiones dentro de select="" y test="" en XSLT utilizan XPath.

  • Localizar nodos mediante expresiones de ruta
  • Más de 100 funciones estándar integradas: operaciones de cadena, cálculos numéricos, comparación de fechas, procesamiento de nodos, operaciones lógicas, etc.

7 tipos de nodo

Nodo de documento (nodo raíz), nodo elemento, nodo atributo, nodo texto, nodo comentario, nodo instrucción de procesamiento, nodo espacio de nombres.

Ejemplo: <title lang="eng">Harry Potter</title>

  • <title> → Nodo elemento
  • lang="eng" → Nodo atributo
  • Harry Potter → Nodo texto

Concepto

  1. Valor atómico (Atomic value): Contenido de nodo sin hijos ni padres, por ejemplo eng, 29.99
  2. Elemento(Item): Elemento = nodo o valor atómico

Relaciones entre nodos XML

Tomemos como ejemplo <bookstore><book><title></title></book></bookstore>

  1. Padre(Parent): Cada elemento y cada atributo tiene un único nodo padre; book es el padre de title
  2. Hijos(Children): Un elemento puede tener varios nodos hijos; title y price son hijos de book
  3. Hermanos(Sibling): Comparten el mismo nodo padre; title y price del mismo nivel son hermanos entre sí
  4. Antepasado(Ancestor): El padre, el padre del padre y todos los nodos superiores; los antepasados de title son book y bookstore

Expresiones de ruta

Seleccionar nodos XML mediante rutas y pasos

<bookstore>
  <book>
    <title lang="eng">Harry Potter</title>
    <price>29.99</price>
  </book>
</bookstore>Lenguaje del código: HTML, XML (xml)
ExpresiónSignificado
bookstoreSelecciona el elemento bookstore bajo la raíz
/bookstoreRuta absoluta, empieza la coincidencia desde el nodo raíz
bookstore/bookSelecciona todos los elementos hijos book dentro de bookstore
//bookElementos book en cualquier parte del documento (búsqueda global)
//@langSelecciona todos los nodos atributo de nombre lang

Función XPath:position()

<xsl:value-of select="position()" />Lenguaje del código: HTML, XML (xml)

position() es una función integrada de XPath, devuelve el número de secuencia del nodo actual dentro del conjunto de nodos, la cuenta empieza en 1.

Ejemplo: imprimir números de secuencia

<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head></head>
<body>
<ul>
    <!--Recorrer todos los estudiantes class/student -->
    <xsl:for-each select="class/student">
        <xsl:sort select="age"/>  <!--Orden ascendente por edad-->
        <!--Filtrar estudiantes con altura >160-->
        <xsl:if test="height &gt; 160">
            <li>
                <xsl:value-of select="position()" /><!--Imprimir número de secuencia-->
                <xsl:value-of select="name"/><!--Evaluación de múltiples condiciones-->
                <xsl:choose>
                    <xsl:when test="height &gt; 200">
                        <b><xsl:value-of select="age"/></b>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:value-of select="age"/>
                    </xsl:otherwise>
                </xsl:choose>
            </li>
        </xsl:if>
    </xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>Lenguaje del código: HTML, XML (xml)

XPath

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *