De le code XML suivant:Comment déterminer l'ordre des colonnes de la table dans xslt?
<?xml version="1.0"?>
<lieferungen>
<artikel id="3526">
<name>apfel</name>
<preis stueckpreis="true">8.97</preis>
<lieferant>Fa. Krause</lieferant>
</artikel>
<artikel id="7866">
<name>Kirschen</name>
<preis stueckpreis="false">10.45</preis>
<lieferant>Fa. Helbig</lieferant>
</artikel>
<artikel id="3526">
<name>apfel</name>
<preis stueckpreis="true">12.67</preis>
<lieferant>Fa. Liebig</lieferant>
</artikel>
<artikel id="7789">
<name>Ananas</name>
<preis stueckpreis="true">8.60</preis>
<lieferant>Fa. Richard</lieferant>
</artikel>
</lieferungen>
Je veux créer une table qui se présente comme suit:
A cette fin, j'ai écrit la xslt suivante:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:template match="lieferungen">
<html>
<head>
<title>
<xsl:text>Lieferungen</xsl:text>
</title>
</head>
<body bgcolor="#ffffff">
<h1>
Lieferungen (Deliveries)
</h1>
<hr/>
<table border="1">
<tr>
<th>Nummer</th>
<th>Article</th>
<th>Price</th>
<th>Supplier</th>
</tr>
<xsl:apply-templates/>
</table>
</body>
<hr/>
<p>
</p>
</html>
</xsl:template>
<xsl:template match="artikel">
<tr>
<td>
<xsl:value-of select="@id"/>
</td>
<xsl:apply-templates/>
</tr>
</xsl:template>
<xsl:template match="name">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
<xsl:template match="preis">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
<xsl:template match="lieferant">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
</xsl:stylesheet>
Le code a bien fonctionné et j'ai eu ma table ... cependant, maintenant je veux changer les colonnes, en particulier je veux changer les colonnes 3 un d 4. À cette fin, je passe simplement l'ordre du modèle pour « preis » et « Lieferant », à savoir le nouvel ordre est maintenant:
<xsl:template match="lieferant">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
<xsl:template match="preis">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
Le reste du code est le même. Cette approche n'a cependant pas fonctionné et l'ordre des colonnes dans la table est resté le même.
Ma question est donc: Comment puis-je faire l'utilisation de l'ordinateur
<xsl:template match="lieferant">
dans le troisième et
<xsl:template match="preis">
pour la quatrième colonne du tableau?