From: Denis BAYARD (denis.bayard@edfgdf.fr)
Date: 03/06/2004 - 08:57
Bonjour,
C'est possible d'isoler les tokens d'un attribut en utilisant de la
récursivité.
Voici un petit hack (je ne'ai pas étudié le cas où plusieurs espaces se
suivent, ...).
Il y a plusieurs parties :
- les règles habituelles (match="/" et match="@attrib") ;
- une règle pour gérer la récursivité (name="attrib-tokenizer")
- une règle pour le traitement unitaire de chaque jeton
(name="token-unitaire")
<xsl:template match="/">
<xsl:apply-templates select="root/item/@attrib"/>
</xsl:template>
<xsl:template match="@attrib">
AVANT : (<xsl:value-of select="."/>)
APRES :
<xsl:call-template name="attrib-tokenizer">
<xsl:with-param name="attr" select="."/>
</xsl:call-template>
</xsl:template>
<xsl:template name="attrib-tokenizer">
<xsl:param name="attr"/>
<xsl:choose>
<xsl:when test="contains($attr,' ')">
<xsl:call-template name="token-unitaire">
<xsl:with-param name="attr"
select="substring-before($attr, ' ')"/>
</xsl:call-template>
<!-- Appeler récursivenment la fonction -->
<xsl:call-template name="attrib-tokenizer">
<xsl:with-param name="attr"
select="substring-after($attr, ' ')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="token-unitaire">
<xsl:with-param name="attr"
select="$attr"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="token-unitaire">
<xsl:param name="attr"/>
(<xsl:value-of select="$attr"/>)
</xsl:template>
Veuillez répondre à xml-tech@xmlfr.org
Envoyé par : xml-tech-bounce@xmlfr.org
Pour : xml-tech@xmlfr.org
cc :
Objet : [xml-tech] XSLT et NMTOKENS
Bonjour,
Je cherche à matcher les différentes valeurs d'un attributs
de type NMTOKENS ou IDREFS :
<root>
<item attrib="a"/>
<item attrib="b c d"/>
</root>
*** Si on applique ces deux templates ci:
<xsl:template match="/">
<xsl:apply-templates select="root/item/@attrib"/>
</xsl:template>
<xsl:template match="@attrib">
(<xsl:value-of select="."/>)
</xsl:template>
*** On obtiens évidemment:
(a)(b c d)
Or, je voudrais appliquer un template pour chaque token de
l'attribut attrib : a puis b puis c puis d
Est-ce clair ?
--
Jérôme LEHUEN
Université du Maine
--
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 30/06/2004 - 08:32 UTC
webmaster@xmlfr.org
|