From: Laurent CAPRANI (caprani@multimania.com)
Date: 02/05/2001 - 14:50
En réponse (tardive) à Pierre Attar
> Envoyé : 25 avril, 2001 10:50
> À : xml-tech@xmlfr.org
> Objet : Problèmes de keys
>
Bonjour Pierre,
Tu me fournis l'occasion de m'initier aux <key>.
Ton programme utilise name="refer" et key('reference',.) qui ne
correspondent évidemment pas.
Voici une version qui donne une liste des déclarations.
Je l'ai testée avec mon petit Labo[1].
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:key name="refer" match="@ref" use="."/>
<xsl:template match="/">
<résultat>
<xsl:for-each select="//@name">
<xsl:choose>
<xsl:when test="key('refer',.)!=''"><xsl:value-of select="."/> :
<xsl:for-each select="key('refer',.)"> référencé dans <xsl:copy-of
select="./.."/></xsl:for-each>
</xsl:when>
<xsl:otherwise><xsl:value-of select="."/> : jamais
référencé</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</résultat>
</xsl:template>
</xsl:stylesheet>
-- Laurent CAPRANI
Montréal
[1] http://formation.espacecourbe.com/caprani/Outils/XsltVision.htm
> Voici un petit programme XSLT passionnant pour valider dans un
> schéma qu'il
> n'y a pas de choses déclarées (avec un attribut name) qui ne
> servent à rien
> (sans qu'il y ait au moins un attribut ref ayant sa valeur positionnée à
> celle du name).
>
> Problème, il ne marche pas car il rentre toujours dans la partie
> otherwise
> de mon choose.
>
> Quelqu'un a-t-il une idée ?
>
> Pierre
>
> <?xml version="1.0" encoding="utf-8"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0">
> <xsl:key name="refer" match="@ref" use="."/>
> <xsl:output method="text"/>
> <xsl:template match="/">
> <xsl:for-each select="//@name">
> <xsl:sort select="."/>
> <xsl:choose>
> <xsl:when test="key('reference',.)!=''"/>
> <xsl:otherwise>
> <xsl:value-of select="."/>
> <xsl:text> : jamais
> référencé</xsl:text>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:for-each>
> </xsl:template>
> </xsl:stylesheet>
--
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
|