From: Benoit BARRE (benoit.barre@teluco.com)
Date: 26/04/2001 - 17:09
Bonjour,
J'essaies de faire qqch à partir de key.
J'ai une instance XML comme suit:
<root>
<item id="1">
<prop name="A" value="un" />
<prop name="B" value="deux" />
</item>
<item id="2">
<prop name="A" value="un" />
<prop name="C" value="trois" />
</item>
</root>
J'aimerais obtenir un tableau de la forme suivante:
<table>
<!-- le header -->
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
</tr>
<!-- les donnees -->
<tr>
<td>un</td>
<td>deux</td>
<td></td>
</tr>
<tr>
<td>un</td>
<td></td>
<td>trois</td>
</tr>
</table>
La génération du header ne me pose pas de problème (utilisation de key)
mais je n'ai aucune idée de la façon dont je peux boucler sur les
"clés".
Voici la FdS que j'utilise pour le moment...
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method = "html" standalone="no" indent="yes" />
<xsl:key name="uniqueKey" match="prop" use="@name" />
<xsl:template match="/">
<table>
<!-- le header -->
<tr>
<xsl:for-each select="/root/item/prop">
<xsl:sort select="@name"/>
<xsl:if
test="generate-id(.)=generate-id(key('uniqueKey',@name))">
<td><xsl:value-of select="@name"/></td>
</xsl:if>
</xsl:for-each>
</tr>
<!-- Et les donnees -->
...
</table>
</xsl:template>
Le problème : comment "boucher les trous" ?
Si quelqu'un a une idée, je suis preneur.
Cordialement,
Benoit
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:05 UTC
webmaster@xmlfr.org
|