From: Eric van der Vlist (vdv@dyomedea.com)
Date: 07/01/2004 - 14:17
On Wed, 2004-01-07 at 14:56, Alexandre Arcouteil wrote:
> D'où l'idée d'utiliser une clef dans un traitement en une seule passe à
> la manière des regroupement méthode Muench.
Oui, mais je ne pense pas que tu puisses l'appliquer dans ce cas.
> En deux passes, le problème est beaucoup plus simple, il suffit de faire
> un regroupement justement :)
Oui, c'est souvent plus simple de faire plusieurs transformations
élémentaires qu'une transformation complexe.
> Ceci dit, je n'ai absolument rien contre le fait d'obtenir mon résultat
> en plusieurs passes, bien au contraire ! J'aurais d'ailleurs tendance à
> penser qu'essayer systématiquement d'obtenir un XSLT qui fasse tout
> d'une seule traite relève plutôt du dogmatisme.
Tu pourrait essayer d'adapter ceci :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="*" mode="chemin">
<xsl:value-of select="concat('{', namespace-uri(), '}', local-name(),
'/')"/>
</xsl:template>
<xsl:template match="/" mode="chemin">
<xsl:text>/</xsl:text>
</xsl:template>
<xsl:template match="*" mode="precedent">
<xsl:param name="chemin"/>
<xsl:variable name="mon-chemin">
<xsl:apply-templates select="ancestor::node()" mode="chemin"/>
</xsl:variable>
<xsl:if test="$chemin=$mon-chemin">+</xsl:if>
</xsl:template>
<xsl:template match="*">
<xsl:variable name="chemin">
<xsl:apply-templates select="ancestor::node()" mode="chemin"/>
</xsl:variable>
<xsl:variable name="precedents">
<xsl:apply-templates select="preceding::*" mode="precedent">
<xsl:with-param name="chemin" select="$chemin"/>
</xsl:apply-templates>
</xsl:variable>
<xsl:if test="$precedents=''">
<xsl:value-of select="concat('
', $chemin)"/>
</xsl:if>
<xsl:apply-templates/>
</xsl:template>
</xsl:transform>
Eric
--
Curious about Relax NG? Read my upcoming book online.
http://books.xmlschemata.org/relaxng/
Upcoming XML schema languages tutorial:
- Santa Clara -half day- (15/03/2004) http://masl.to/?J24916E96
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(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
|