Bucle

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

OperadorEscritura XPathSignificado
==Igual que
!=!=Distinto de
<&lt;Menor que (no escribir < directamente, es obligatorio escapar)
>&gt;Mayor que (no escribir > directamente, es obligatorio escapar)

Ejemplo: filtrar CDs con precio inferior a 10

<xsl:for-each select="catalog/cd[price &lt; 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 &gt; 14]">
    <li><xsl:value-of select="name"/><xsl:value-of select="age"/></li>
</xsl:for-each>Lenguaje del código: HTML, XML (xml)

Bucle

Deja una respuesta

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