Elemento <xsl:for-each>
Aplica una plantilla repetidas veces, es decir, a cada uno de los nodos de un conjunto.
<xsl:for-each select = Expression </xsl:for-each>
- select
-
Necesario. Expresiones evaluada en el contexto actual para determinar el conjunto de nodos que es necesario recorrer en iteración.
| Número de apariciones | Ilimitado |
| Elementos primarios | xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:processing-instruction, xsl:template, xsl:variable, xsl:when, xsl:with-param, elementos de salida |
| Elementos secundarios | xsl:apply-imports, xsl:apply-templates, xsl:attribute, xsl:call-template, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:number, xsl:processing-instruction, xsl:sort, xsl:text, xsl:value-of, xsl:variable |
El elemento <xsl:for-each> establece el contexto para el recorrido en iteración. Las instrucciones de transformación XSLT de este bucle deben aplicarse a los nodos seleccionados. Cada elemento de origen seleccionado por <xsl:for-each> se convierte en un nuevo contexto en función de cual aparece cualquier modelo coincidente en <xsl:for-each>.
El archivo XSLT de este ejemplo permite definir la estructura de un documento de salida. El resultado es un elemento HTML de nivel superior que contiene los elementos <BODY> y <TABLE>. La tabla contiene filas repetidas para cada cliente. El archivo XSLT también utiliza plantillas para crear elementos <TD> para los elementos de nombre, dirección y número de teléfono.
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="foreach.xsl" ?> <customers> <customer> <name>John Smith</name> <address>123 Oak St.</address> <state>WA</state> <phone>(206) 123-4567</phone> </customer> <customer> <name>Zack Zwyker</name> <address>368 Elm St.</address> <state>WA</state> <phone>(206) 423-4537</phone> </customer> <customer> <name>Albert Aikens</name> <address>368 Elm St.</address> <state>WA</state> <phone>(206) 423-4537</phone> </customer> <customer> <name>Albert Gandy</name> <address>6984 4th St.</address> <state>WA</state> <phone>(206) 433-4547</phone> </customer> <customer> <name>Peter Furst</name> <address>456 Pine Av.</address> <state>CA</state> <phone>(209) 765-4321</phone> </customer> <customer> <name>Dan Russell</name> <address>9876 Main St.</address> <state>PA</state> <phone>(323) 321-7654</phone> </customer> </customers>
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:template match="/"> <HTML> <BODY> <TABLE> <xsl:for-each select="customers/customer"> <xsl:sort select="state" order="descending"/> <xsl:sort select="name"/> <TR> <TD><xsl:value-of select="name" /></TD> <TD><xsl:value-of select="address" /></TD> <TD><xsl:value-of select="phone" /></TD> </TR> </xsl:for-each> </TABLE> </BODY> </HTML> </xsl:template> </xsl:stylesheet>
usa
->luis
->pedro
->Juan
mexico
->ramon
->antonio
->carlos
peru
->Edgar
->rafael
->maria
si me pueden ayudar porfavor me ayudarian mucho con las aplicaciones que estoy desarrollando!!!
- 11/01/2011
- rafael25