From: Ludovic Condette (lc@novadeck.net)
Date: 12/02/2001 - 18:30
> Je suis tout de même parvenue à résoudre mon problème, mais pas de
>manière entièrement satisfaisante puisque ça n'est pas dans l'esprit XSL ;-)
ok
>En fait, mon vrai problème est de gérer les ruptures avec XSL; autrement
>dit, comment insérer des noeuds entre le noeud <PowerCtn> et les noeuds
><Commande>, pour regrouper les noeuds <Commande> selon un paramètre qui
>serait par exemple la valeur de <delcom> ou bien celle de <codcli> ?
en fait, peut-être que dans l'esprit XSLT, il faut traiter les noeuds par
'paquet' quand il sont plusieurs et faire la séparation entre les
différents 'paquets'
> J'essaierai de me procurer "XSLT Programmer's Guide" de Michael Kay
le bardu ? c'est ma bible ! (indispensable :))
parle !!! Cependant, si quelqu'un a déjà fait quelque chose de semblable et
>qu'il a une solution, je suis preneuse !!!
>
>Merci d'avance,
voici la mienne ... en reprenant ton xml, j'ai testé et fait des tableaux
par changement de dates.
1) dans la règle 'PowerCtn' dans un 'for-each' pouvoir sélectionner tous
les noeuds uniques (soit la date courante différente de la précédente)
-sélection la date précédente :
<xsl:value-of select="preceding-sibling::*[1]/Var/delcom"/><br/>
-sélection la date courante :
<xsl:value-of select="./Var/delcom"/><br/>
2) pour chaque noeud (unique) traité tous les noeuds qui pourrait
'ressembler' au noeud courant (la date égale) par :
select="following-sibling::*[1][./Var/delcom=preceding-sibling::*[1]/Var/delcom]"
dans la règle 'PwerCtn' on ouvre un tableau avant le 1) et le ferme après
le 2) (ça rassure le XSLT et ça passe...:)
voici le code : (note les lignes pour faire le tableau sont pour l'exemple)
<!-- PowerCtn -->
<xsl:template match="PowerCtn">
<xsl:for-each
select="Commande[not(./Var/delcom=preceding-sibling::*[1]/Var/delcom)]">
<table border="1" size="100%">
<tr>
<td><b>delcom</b></td>
<td><b>boncom</b></td>
<td><b>codcli</b></td>
<td><b>nomcli</b></td>
<td><b>numref</b></td>
<td><b>apref1</b></td>
<td><b>coddes</b></td>
<td><b>BgColor</b></td>
</tr>
<xsl:apply-templates select="."/>
<xsl:apply-templates
select="following-sibling::*[1][./Var/delcom=preceding-sibling::*[1]/Var/delcom]"
/>
</table>
<br/><br/>
</xsl:for-each>
</xsl:template>
<!-- Commande -->
<xsl:template match="Commande"><tr><xsl:apply-templates/></tr></xsl:template>
<!-- delcom-->
<xsl:template match="delcom"><td><xsl:apply-templates/></td></xsl:template>
<!-- boncom-->
<xsl:template match="boncom"><td><xsl:apply-templates/></td></xsl:template>
<!-- codcli-->
<xsl:template match="codcli"><td><xsl:apply-templates/></td></xsl:template>
<!-- nomcli-->
<xsl:template match="nomcli"><td><xsl:apply-templates/></td></xsl:template>
<!-- numref-->
<xsl:template match="numref"><td><xsl:apply-templates/></td></xsl:template>
<!-- apref1-->
<xsl:template match="apref1"><td><xsl:apply-templates/></td></xsl:template>
<!-- coddes-->
<xsl:template match="coddes"><td><xsl:apply-templates/></td></xsl:template>
<!-- BgColor-->
<xsl:template match="BgColor"><td><xsl:apply-templates/></td></xsl:template>
B. courage
------------
> Aurélie
>
>Voici ma structure XML :
>
>==========Fichier XML===========
><?xml version="1.0" encoding="ISO-8859-1"?>
><?xml-stylesheet href="ListComRslt2.xsl" type="text/xsl" ?>
><PowerCtn>
> <Commande name="Commande" racine="1">
> <Var>
> <delcom>19990610</delcom>
> <boncom>005417</boncom>
> <codcli>003135 </codcli>
> <nomcli>DUNGAREE S.A. </nomcli>
> <numref>0978 </numref>
> <apref1>RIVIERA </apref1>
> <coddes/>
> <BgColor>#D0F0FF</BgColor>
> </Var>
> </Commande>
> <Commande name="Commande" racine="1">
> <Var>
> <delcom>19990625</delcom>
> <boncom>005418</boncom>
> <codcli>003135 </codcli>
> <nomcli>DUNGAREE S.A. </nomcli>
> <numref>0978 </numref>
> <apref1>RIVIERA </apref1>
> <coddes/>
> <BgColor/>
> </Var>
> </Commande>
> <Commande name="Commande" racine="1">
> <Var>
> <delcom>19990706</delcom>
> <boncom>005471</boncom>
> <codcli>002037 </codcli>
> <nomcli>EMINETT </nomcli>
> <numref>0954 </numref>
> <apref1>MOUSSE </apref1>
> <coddes>024516</coddes>
> <BgColor>#D0F0FF</BgColor>
> </Var>
> </Commande>
> <Commande name="Commande" racine="1">
> <Var>
> <delcom>19990706</delcom>
> <boncom>005493</boncom>
> <codcli>100412 </codcli>
> <nomcli>MARCHA MADRID SL. </nomcli>
> <numref>0941 </numref>
> <apref1>MADONNA/ECRU RESILLE </apref1>
> <coddes>099031</coddes>
> <BgColor/>
> </Var>
> </Commande>
> <Commande name="Commande" racine="1">
> <Var>
> <delcom>19990707</delcom>
> <boncom>005475</boncom>
> <codcli>100057 </codcli>
> <nomcli>BLUE NILE </nomcli>
> <numref>1242 </numref>
> <apref1>YUCCA </apref1>
> <coddes/>
> <BgColor>#D0F0FF</BgColor>
> </Var>
> </Commande>
></PowerCtn>
>
>
>
>--
>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
________________________________________
Ludovic Condette
IT Project Manager
email: lc@novadeck.com
http://www.novadeck.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)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:05 UTC
webmaster@xmlfr.org
|