IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSLT] Variable pour tout le fichier


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 162
    Points : 445
    Points
    445
    Par défaut [XSLT] Variable pour tout le fichier
    Bonjour,
    J'ai un problème dont je ne trouve pas la solution. Je suis sur que j'ai loupé un truc mais je ne sais pas quoi. cela concerne les variables.

    Mon XML ressemble a ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <FICHEOFF ID="SOCI20F20_014_J" maj="12">
    	<CARTOUCHE>
    		<NUMERO>20.14j</NUMERO>
    		<TITRE>Pr&ecirc;t</TITRE>
    		<REFERENCE>Code 
    		</REFERENCE>
    	</CARTOUCHE>
    	<TITREF Type="Chapitre">Chapitre VIII
    	</TITREF>
    	<PARA>[...]</PARA>
    	<ARTICLE>
    		<NUM-ART ID="SOCI20F20_014_J_ARTR318-2">Art.&nbsp;R. 318-2</NUM-ART>
    		<PARA>blabla</PARA>
    	</ARTICLE>
    </FICHEOFF>
    Et la XSL me permettant de traiter ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <xsl:template match="FICHEOFF">
    <table border="0" cellpadding="5" cellspacing="1" width="100%">
                            <tr>
                                <td>
                                    <span class="FD-Arial-11-B-Noir">
                                        <xsl:value-of select="CARTOUCHE/REFERENCE"/>
                                    </span>
                                    <br/>
                                    <br/>
                                    <xsl:copy-of select="CARTOUCHE/TITRE"/>
                                </td>
                                <td align="center" bgcolor="#EFEFEF">
                                    <p>
                                        <span class="FD-Arial-10-B-Noir">FICHE
                                            <br/>
                                        </span>
                                        <span class="FD-Arial-12-B-Noir">
                                            <xsl:value-of select="CARTOUCHE/NUMERO"/>
                                        </span>
                                    </p>
                                </td>
                            </tr>
                        </table>
    <xsl:apply-templates select="//FICHEOFF/child::*/*[name() != 'CARTOUCHE']"/>
     
    </xsl:template>
    Si je met un simple "<xsl:apply-templates/> a la fin tout le contenue de la cartouche est remis juste en dessous ce que je voudrait éviter

    Dans l'ideal je voudrait arriver a faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="$texte" />
    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:variable name ="textesimple" select="PARA | TABLEAU | EQN"/>
    	<xsl:variable name ="texte" select="$textesimple | ENC | OBSERVATION"/>
    Sachant que ces vararibles doivent pouvoir être atteinte en plusieurs endroit (xsl:template match="TOTO">) dans ma XSL

    Donc ou dois je mettre mes deux ligne de varaibles ??? Apparement je peut les mettre juste en dessous de "<xsl:output method="html"/>" ...

    Mais sinon je peut aussi me contenter d'une autre solution peut être plus facile. Si je pouvait appliquer toutes les balises qui sont contenue dans un noeud mais en évitant le première noeud(CARTOUCHE)
    J'ai bien un truc comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:apply-templates select="//FICHEOFF/child::*/*[name() != 'CARTOUCHE']"/>
    ou comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:apply-templates select="//FICHEOFF/child::*/*[position() != 1]"/>
    Mais rien ne marche

    Le problème se repose dans les éléments "ARTICLE" (avec "NUM-ART"), donc il me faudrait une méthode qui peut s'appliquer sur chacun.

    Je pensait décomposer au maximum mes traitement XSL mauis je ne sais pas si c'est vraiment la meilleur solution.

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 162
    Points : 445
    Points
    445
    Par défaut
    Personne ... bon tant pis
    J'ai séparer le traitement de tous mes blocs et ca fait a peut près ce que je veut ...

  3. #3
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Je pense que c'est parce que personne n'a compris le problème.
    Je viens de le lire et je ne comprends pas moi-même vu qu'il n'y a aucune reference à une quelconque variable dans l'exemple.
    Ca n'aide pas

    Juste une chose: les varaibles globales doivent bien être placé sous le output mais au vu des chemins données qui ne veulent rien dire à cet endroit je pense qu'il y a un pb de comprehension.
    Une variable est instancié au moment de sa déclaration, le chemin xpath donné alors doit être valide .

    Pour le reste , un peu de clarté aidera à la comprehension

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/02/2010, 19h30
  2. [WD-2003] Variable pour nommer des fichiers après un publipostage
    Par Chriscom74 dans le forum VBA Word
    Réponses: 3
    Dernier message: 30/11/2009, 15h00
  3. [XSLT] template pour tout sauf
    Par bitbis dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/12/2007, 08h57
  4. Comment faire une variable pour tout le programme ?
    Par Nico128 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 04/06/2007, 08h48
  5. Variable pour toute ma base
    Par LeXo dans le forum Access
    Réponses: 10
    Dernier message: 18/04/2006, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo