On peut produire des structures régulières dans l'arbre résultat avec l'instruction
<xsl:for-each select="node-set-expression">
<!-- Content: template -->
</xsl:for-each>
Engendre le template contenu dans
l'élément pour chaque noeud sélectionné par l'expression select
Une instruction sort
dans le template permet de modifier l'ordre des noeuds,
sinon c'est l'ordre de l'arbre source
Exemple : avec le document source
<customers>
<customer>
<name>...</name>
<order>...</order>
<order>...</order>
</customer>
<customer>
<name>...</name>
<order>...</order>
<order>...</order>
</customer>
</customers>
on produit un document HTML contenant une table contenant une ligne par client, avec
<xsl:template match="/">
<html>
<head>
<title>Customers</title>
</head>
<body>
<table>
<tbody>
<xsl:for-each select="customers/customer">
<tr>
<th>
<xsl:apply-templates select="name"/>
</th>
<xsl:for-each select="order">
<td>
<xsl:apply-templates/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</tbody>
</table>
</body>
</html>
</xsl:template>
21/27 |