From: Eric van der Vlist (vdv@dyomedea.com)
Date: 25/06/2002 - 06:56
On Tue, 2002-06-25 at 07:38, Eric.Reiter@ic.lu wrote:
> Bonjour
>
> je ne pemse pas qu il soit necessaire de faire les 2 en meme temps.
Ni même possible :-) ...
> Vous
> pouvez commencez par trier les donnees puis fabriquer le tableau a partir
> des donnees triees.
C'est effectivement l'idée, le travail en deux passes permettant
éventuellement de "préparer" la deuxième passe pendant la première. Le
principal problème est qu'il faut passer par une conversion "Result Tree
Fragment" -> "Node set", comme par exemple en utilisant les extensions
exslt:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
extension-element-prefixes="exsl"
exclude-result-prefixes="exsl">
<xsl:template match="/">
<table>
<xsl:variable name="tmp-rtf">
<xsl:apply-templates select="/root/node" mode="pre">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</xsl:variable>
<xsl:variable name="tmp" select="exsl:node-set($tmp-rtf)"/>
<xsl:apply-templates select="$tmp/tr"/>
</table>
</xsl:template>
<xsl:template match="node" mode="pre">
<xsl:if test="position() mod 3 = 1">
<tr/>
</xsl:if>
<xsl:copy-of select="."/>
</xsl:template>
<xsl:template match="tr">
<tr>
<xsl:apply-templates select="following-sibling::*[1]"
mode="pasApas"/>
</tr>
</xsl:template>
<xsl:template match="tr" mode="pasApas"/>
<xsl:template match="node" mode="pasApas">
<td>
<xsl:value-of select="@name"/>
</td>
<xsl:apply-templates select="following-sibling::*[1]" mode="pasApas"/>
</xsl:template>
</xsl:stylesheet>
Cordialement,
Eric van der Vlist
--
See you in San Diego.
http://conferences.oreillynet.com/os2002/
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
--
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:06 UTC
webmaster@xmlfr.org
|