RE : Re: probleme de traitement
"MAGNA Pascal" <[email protected]>
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Message-ID | <6D1AEC3456FCEE41951B2874053E9B28046F4D84@scmex-clipper.cneti.caisse-epargne.fr> |
Bonjour,
Voici le code avec quelques simplifications (chaque template se trouve dans des feuilles de styles différentes lesquelles sont appelées par des includes)
Il y a d'autres feuilles de styles pour d'autres familles d'opération (lect_rub_g***) mais basé sur le même principe.
Le but est d'afficher une opération bancaire (ensemble de balise s*) avec le template create_rub et dans un deuxieme temps d'afficher l'opération complète avec l'ensemble des champs s*. Le bémol c'est que j'ai x description d'opération bancaire (lect_rub_g***) et que je ne veux pas créer une balise <xsl:element name ="concatene"><xsl:value-of select="s1"/><xsl:value-of select="s2"/><xsl:value-of select="s3"/></xsl:element> car cela suppose que je doit coder l'ensemble des description une nouvelle fois.
Choose when ope1 .... When ope2 .... Etc je voudrais quelquechose de générique.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- Format de sortie des données -->
<!-- ============================ -->
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1" omit-xml-declaration="no" indent="yes" cdata-section-elements="Valeurs"/>
<!-- Appels successifs des templates -->
<!-- =============================== -->
<xsl:template match="/">
<xsl:call-template name="GSIT"></xsl:call-template>
</xsl:template>
<xsl:template name="GSIT">
<xsl:element name="DRK_RESPONSE">
<xsl:for-each select="/DRK_RESPONSE/DrkHit/DrkDocument">
<xsl:element name="Opération">
<!-- OPERATIONS FAMILLE DES VIREMENTs -->
<!-- ===================================================================================== -->
<xsl:call-template name="gs18is"><xsl:with-param name="position_deb" select="'1'" /></xsl:call-template>
</xsl:element>
<xsl:element name="Minos">
<xsl:value-of select="'?'"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
<!-- Appel des differents groupes (SI (Sit Initial), BI (Banque Initial), SR, SA, BR, BA etc -->
<!-- ========================================================================================== -->
<xsl:template name="gs18is">
<xsl:param name="position_deb" />
<xsl:element name="ZONE">
<xsl:attribute name="type">SIT</xsl:attribute>
<xsl:attribute name="motif">INITIALE</xsl:attribute>
<xsl:call-template name="lect_rub_gs18is"><xsl:with-param name="position_deb" select="$position_deb"/></xsl:call-template>
</xsl:element>
<!-- <xsl:call-template name="lect_rub_gs18is"><xsl:with-param name="position_deb" select="$position_deb"/></xsl:call-template> -->
</xsl:template>
<xsl:template name="lect_rub_gs18is">
<xsl:param name="position_deb" />
<xsl:call-template name="creat_rub">
<xsl:with-param name="code" select="'s1'" />
<xsl:with-param name="position_deb" select="$position_deb"/>
<xsl:with-param name="position" select="'1'" />
<xsl:with-param name="libelle" select="'indicateur début d opération'" />
<xsl:with-param name="type" select="'AN'" />
<xsl:with-param name="lg" select="'2'" />
<xsl:with-param name="valeur" select="s1" />
</xsl:call-template>
<xsl:call-template name="creat_rub">
<xsl:with-param name="code" select="'s2'" />
<xsl:with-param name="position_deb" select="$position_deb"/>
<xsl:with-param name="position" select="'3'" />
<xsl:with-param name="libelle" select="'longueur totale opération'" />
<xsl:with-param name="type" select="'N'" />
<xsl:with-param name="lg" select="'4'" />
<xsl:with-param name="valeur" select="s2" />
</xsl:call-template>
<xsl:call-template name="creat_rub">
<xsl:with-param name="code" select="'s3'" />
<xsl:with-param name="position_deb" select="$position_deb"/>
<xsl:with-param name="position" select="'7'" />
<xsl:with-param name="libelle" select="'code article'" />
<xsl:with-param name="type" select="'N'" />
<xsl:with-param name="lg" select="'2'" />
<xsl:with-param name="valeur" select="s3" />
</xsl:call-template>
<xsl:call-template name="creat_rub">
<xsl:with-param name="code" select="'s4'" />
<xsl:with-param name="position_deb" select="$position_deb"/>
<xsl:with-param name="position" select="'9'" />
<xsl:with-param name="libelle" select="'code opération'" />
<xsl:with-param name="type" select="'N'" />
<xsl:with-param name="lg" select="'3'" />
<xsl:with-param name="valeur" select="s4" />
</xsl:call-template>
</xsl:template>
<!-- Appels des templates de type fonction -->
<!-- ========================================================================================== -->
<xsl:template name="creat_rub">
<xsl:param name="code" />
<xsl:param name="position_deb"/>
<xsl:param name="position" />
<xsl:param name="libelle" />
<xsl:param name="type" />
<xsl:param name="lg" />
<xsl:param name="valeur" />
<!-- Traitement de création de balises détaillées pour chaque champ -->
<!-- ============================================================== -->
<xsl:element name="rubrique">
<Code value="{$code}"/>
<Position value="{$position_deb + $position -1}"/>
<Libellé value="{$libelle}"/>
<Type value="{$type}"/>
<Lg value="{$lg}"/>
<Valeur value="{$valeur}"/>
</xsl:element>
<!-- <xsl:value-of select="$valeur"/> -->
</xsl:template>
</xsl:stylesheet>
MAGNA Pascal
CNETI/DECI
Tel : 01.58.40.23.11
EMail : [email protected]
-----Message d'origine-----
De : [email protected] [mailto:[email protected]] De la part de Sébastien Tiscar
Envoyé : lundi 12 juin 2006 18:10
À : [email protected]
Objet : [xml-tech] Re: probleme de traitement
pas besoin d utiliser une variable il suffit d appeler la valuer de chaque
élément ou d utilier la fonction concat
<xsl:element name ="concatene">
<xsl:value-of select="s1"/><xsl:value-of select="s2"/><xsl:value-of
select="s3"/>
</xsl:element>
Maintenant, ce code peut changer en prenant compte du noeud contextuel mais
là tout dépend de votre xsl, pourrait en avoir la source?
----- Original Message -----
From: "MAGNA Pascal" <[email protected]>
To: <[email protected]>
Sent: Monday, June 12, 2006 5:39 PM
Subject: [xml-tech] probleme de traitement
> Bonjour,
>
> En schématisant, j'ai un document
>
> <s1>nom</s1>
> <s2>prénom</s2>
> <s3>age</s3>
>
> Je dois (et c'est fait) dans un document en sortie généré <rubrique>
> <Code value="s1" />
> <Valeur value="nom" />
> </rubrique>
> </rubrique>
> <rubrique>
> <Code value="s2" />
> <Valeur value="prenom" />
> </rubrique>
> </rubrique>
> <rubrique>
> <Code value="s3" />
> <Valeur value="age" />
> </rubrique>
>
> et en plus et c'est là que ça complique
> je dois générer en plus à la suite de ce que j'obtiens précédement :
>
> <concatene>nomprenomage</concatene>
>
> J'ai essayé d'utilisé value-of (je génère avec cooktop le résultat
> concaténé dans html) et avec une variable je n'arrive pas à l'alimenter
> pour l'utilser apres mon traitement détail (je dois pas savoir y faire)
>
> Merci pour tout.
>
> Si besoin de plus de détail ....
>
> MAGNA Pascal
> CNETI/DECI
> Tel : 01.58.40.23.11
> EMail : [email protected]
>
>
>
>
>
> --
> Devenez redacteur <XML>fr et contribuez au developpement du xml
> francophone (http://xmlfr.org/infos/redacteurs/) !
>
> Liste de diffusion "[email protected]" (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 [email protected]
> (mailto:[email protected]?Subject=unsubscribe)
>
>
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "[email protected]" (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 [email protected]
(mailto:[email protected]?Subject=unsubscribe)