From: Veauleger François (f.veauleger@kenobee.fr)
Date: 03/01/2001 - 09:51
Voici les fichiers
XML
-----------------------------------------------------------------------
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml:stylesheet type="text/xsl" href="form.xsl"?>
<formulaire>
<speculation>M0000481</speculation>
<descriptif_technique>
<langue>32</langue>
<autres_langues></autres_langues>
XSL
------------------------------------------------------------------------
----------------------------------------------
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:lan="http://xmlfr.org/ns/langues" exclude-result-prefixes="lan">
<xsl:output method="xml" encoding="ISO-8859-1" indent="yes"/>
<lan:spelangue>
<language id="32">Francais</language>
<language id="16">Anglais</language>
<language id="8">Allemand</language>
<language id="4">Espagnol</language>
<language id="2">Italien</language>
</lan:spelangue>
<xsl:template match="spelangue" name="spelangue">
<xsl:param name="spelangue" select="concat(., ',')"/>
<xsl:if test="$spelangue">
<xsl:value-of
select="document('')/xsl:stylesheet/lan:spelangue/language[@id=substring
-before($spelangue,',')]"/>
<xsl:call-template name="spelangue">
<xsl:with-param name="spelangue"
select="substring-after($spelangue,',')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template match="/">
<html>
<head>
<link rel="stylesheet" href="../timer.css"></link>
<meta author="Veauleger Francois"></meta>
<title>Bon de speculation Medias Interactifs</title>
</head>
<body>
<xsl:if incomplet="images/incomplet.gif"/><img
src="../images/incomplet.gif"></img>
<TABLE cellSpacing="0" cellPadding="1" border="0" width="680">
<tr height="33">
<td height="33" background="../images/bandeau-specu.gif"
valign="middle"><img src="../images/fermer_trans.gif" width="60"
height="10" border="0"></img><img src="../images/fermer_trans.gif"
width="60" height="10" border="0"></img><img
src="../images/fermer_trans.gif" width="60" height="10"
border="0"></img><img src="../images/fermer_trans.gif" width="60"
height="10" border="0"></img><font color="#ffffff" ><b><xsl:value-of
select="*/speculation"/></b></font></td>
</tr>
<TR valign="top">
<td align="left" valign="top" ><img
src="../images/ti-descriptif-technique.gif" width="203" height="24"
border="0"></img></td>
</TR>
<TR>
<td><font color="#7676C5"><b>Langue:
</b></font><xsl:apply-templates select="/spelangue"/><xsl:value-of
select="formulaire/speciaux/spe_langue"/><xsl:value-of
select="autres_langues"/></td>
</TR>
<xsl:for-each select="formulaire/descriptif_technique">
<TR>
<td><font color="#7676C5"><b>Type de produit:
</b></font><xsl:value-of select="type_produit"/><xsl:value-of
select="autres_types_produit"/></td>
</TR>
------------------------------------------------------------------------
-----------------------------------------------------
-----Message d'origine-----
De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
part de Eric van der Vlist
Envoyé : Wednesday, January 03, 2001 9:53 AM
À : xml-tech@xmlfr.org
Objet : [xml-tech] Re: Decoupage de données et traitemant XSL
Bonjour,
Veauleger François wrote:
>
> Bonjour,
>
> J'ai dans mon fichier xml les données suivantes :
>
> <langues>32,16,8</langues>
>
> chaque chiffres correspond a une langue par exemple : 32=francais,...
>
> A travers mon fichier XSL je voudrais faire apparaitre ces langues.
Cela pose en fait deux questions:
1) Comment gérer des valeurs séparées par des virgules (utilisation
récursive de templates utilisant les fonctions substring-after et
substring-before) ?
2) Comment stocker une "table de correspondance" dans une feuille de
style (utilisation d'éléments d'un espace de nom non XSL au moyen de
document("") ) ?
J'ai regroupé les réponses à ces deux questions dans l'exemple suivant:
----source----
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="C:\Java\tests\Veauleger.xsl"?>
<langues>32,16,8</langues>
----xslt----
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:lan="http://xmlfr.org/ns/langues" exclude-result-prefixes="lan">
<xsl:output method="xml" encoding="ISO-8859-1" indent="yes"/>
<lan:langues>
<langue id="32">Français</langue>
<langue id="16">Indi</langue>
<langue id="8">Breton</langue>
</lan:langues>
<xsl:template match="/">
<html>
<body>
<p>Langues:</p>
<ul>
<xsl:apply-templates
select="/langues"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="langues" name="langues">
<xsl:param name="langues" select="concat(., ',')"/>
<xsl:if test="$langues">
<li>
<xsl:value-of
select="document('')/xsl:stylesheet/lan:langues/langue[@id=substring-bef
ore($langues,
',')]"/>
</li>
<xsl:call-template name="langues">
<xsl:with-param name="langues"
select="substring-after($langues,
',')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
----résultat----
<?xml version="1.0" encoding="ISO-8859-1"?>
<html>
<body>
<p>Langues:</p>
<ul>
<li>Français</li>
<li>Indi</li>
<li>Breton</li>
</ul>
</body>
</html>
Cordialement,
Eric van der Vlist
>
> Merci de votre aide
>
> Veauleger François
> Kenobee
--
------------------------------------------------------------------------
Eric van der Vlist Dyomedea http://dyomedea.com
http://xmlfr.org http://4xt.org http://ducotede.com
------------------------------------------------------------------------
--
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)
--
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
|