Etiquetas principales
1. <xsl:value-of>
Función: extrae el contenido de texto del nodo XML indicado y lo envía al documento de resultado.
<!-- Obtiene el valor title del primer catalog/cd (sin bucle solo devuelve el primer elemento) -->
<xsl:value-of select="catalog/cd/title" />Lenguaje del código: HTML, XML (xml)
Si no se usa junto con el bucle <xsl:for-each>, solo se obtiene el primer nodo coincidente y no se recorren todos los datos.
2. <xsl:for-each>
Función: recorre un conjunto de nodos XML coincidentes para procesar varios registros en lote.
<xsl:for-each select="class/student">
<li><xsl:value-of select="name"/>;<xsl:value-of select="age"/></li>
</xsl:for-each>Lenguaje del código: HTML, XML (xml)
Sintaxis de filtro XPath
Coloca [condición] después de la ruta select para filtrar nodos y aplicar filtros de datos
<!-- Muestra únicamente los registros cd donde artist sea igual a Bob Dylan -->
<xsl:for-each select="catalog/cd[artist='Bob Tom']">Lenguaje del código: HTML, XML (xml)
Operadores soportados
| Operador | Escritura XPath | Significado |
|---|---|---|
| = | = | Igual que |
| != | != | Distinto de |
| < | < | Menor que (no escribir < directamente, es obligatorio escapar) |
| > | > | Mayor que (no escribir > directamente, es obligatorio escapar) |
Ejemplo: filtrar CDs con precio inferior a 10
<xsl:for-each select="catalog/cd[price < 10]">Lenguaje del código: HTML, XML (xml)
Ejemplo anterior
student.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>
<head>
</head>
<body>
<ul>
<!-- Recorre todos los nodos student -->
<xsl:for-each select="class/student">
<li><xsl:value-of select="name"/>;<xsl:value-of select="age"/></li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>Lenguaje del código: HTML, XML (xml)
XML asociado(student.xml)
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="student.xsl"?>
<class>
<student>
<name>Jack</name>
<age>16</age>
</student>
<student>
<name>Jim</name>
<age>12</age>
</student>
</class>Lenguaje del código: HTML, XML (xml)
Agregar filtro
Mostrar solo alumnos mayores de 14 años
<xsl:for-each select="class/student[age > 14]">
<li><xsl:value-of select="name"/>;<xsl:value-of select="age"/></li>
</xsl:for-each>Lenguaje del código: HTML, XML (xml)
Bucle
Previous: Ejemplo XSLT
Next: Condición y ordenación