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

XML/XSL et SOAP Discussion :

Boucle, recomposition arborescence xslt


Sujet :

XML/XSL et SOAP

  1. #1
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut Boucle, recomposition arborescence xslt
    Je rame depuis un moment sur ce soucis :
    Mon XML d'entrée :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
        <ns0:CTO_STRUCTURE>
              <ns0:STRUCTURE_CODE>ST000</ns0:STRUCTURE_CODE>
              <ns0:STRUCTURE_DESCRIPTION>st desc</ns0:STRUCTURE_DESCRIPTION>
              <ns0:TMP_SECTIONS>
                <ns0:TMP_SECTION>
                  <ns0:TMP_SECTION_ID>TR01</ns0:TMP_SECTION_ID>        <ns0:TMP_SECTION_DESCRIPTION>TR01</ns0:TMP_SECTION_DESCRIPTION>
                  <ns0:TMP_OILFIELD_REFERENCE></ns0:TMP_OILFIELD_REFERENCE>
                </ns0:TMP_SECTION>
                <ns0:TMP_SECTION>
                  <ns0:TMP_SECTION_ID>TR03</ns0:TMP_SECTION_ID>
                  <ns0:TMP_SECTION_DESCRIPTION>TR03</ns0:TMP_SECTION_DESCRIPTION>
                  <ns0:TMP_OILFIELD_REFERENCE></ns0:TMP_OILFIELD_REFERENCE>
                </ns0:TMP_SECTION>
                <ns0:TMP_SECTION>
                  <ns0:TMP_SECTION_ID>TR03</ns0:TMP_SECTION_ID>
                  <ns0:TMP_SECTION_DESCRIPTION>TR03</ns0:TMP_SECTION_DESCRIPTION>
                  <ns0:TMP_OILFIELD_REFERENCE></ns0:TMP_OILFIELD_REFERENCE>
                  <ns0:TMP_OILWELL_REFERENCE></ns0:TMP_OILWELL_REFERENCE>
                  <ns0:TMP_ORDERED_LENGTH>101</ns0:TMP_ORDERED_LENGTH>
                </ns0:TMP_SECTION>
              </ns0:TMP_SECTIONS>
              <ns0:CTO_SECTIONS>
                <ns0:CTO_SECTION>
                  <ns0:CTO_ACTTYPES>
                    <ns0:CTO_ACTTYPE>
                      <ns0:ACTTYPE_ID>TR03-MANUF</ns0:ACTTYPE_ID>
                      <ns0:ACTTYPE_DESCRIPTION>TR03-MANUF</ns0:ACTTYPE_DESCRIPTION>
                      <ns0:CTO_ACTIVITIES>
                        <ns0:CTO_ACTIVITY>
                          <ns0:ACTIVITY_ID>02-GP-TR03</ns0:ACTIVITY_ID>
                          <ns0:ACTIVITY_DESCRIPTION>02-GP-TR03</ns0:ACTIVITY_DESCRIPTION>
                          <ns0:ACTIVITY_DURATION>0</ns0:ACTIVITY_DURATION>
                        </ns0:CTO_ACTIVITY>
                      </ns0:CTO_ACTIVITIES>
                    </ns0:CTO_ACTTYPE>
                    <ns0:CTO_ACTTYPE>
                      <ns0:ACTTYPE_ID>TR03-MANUF</ns0:ACTTYPE_ID>
                      <ns0:ACTTYPE_DESCRIPTION>TR03-MANUF</ns0:ACTTYPE_DESCRIPTION>
                      <ns0:CTO_ACTIVITIES>
                        <ns0:CTO_ACTIVITY>
                          <ns0:ACTIVITY_ID>03-SF-TR03</ns0:ACTIVITY_ID>
                          <ns0:ACTIVITY_DESCRIPTION>03-SF-TR03</ns0:ACTIVITY_DESCRIPTION>
                          <ns0:ACTIVITY_DURATION>0</ns0:ACTIVITY_DURATION>
                        </ns0:CTO_ACTIVITY>
                      </ns0:CTO_ACTIVITIES>
                    </ns0:CTO_ACTTYPE>
    En sortie je voudrai, dans chaque noeud section insérer le noeud CTO_ACTTYPES et ses enfants (en fonction de la correspondance CTO_SECTION_ID / ACTTYPE_ID) :
    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
    27
    28
     
    <CTO_STRUCTURE>
      <STRUCTURE_CODE>ST000</STRUCTURE_CODE>
      <STRUCTURE_DESCRIPTION>st desc</STRUCTURE_DESCRIPTION>
      <CTO_SECTIONS>
        <CTO_SECTION>
          <CTO_SECTION_ID>TR03</CTO_SECTION_ID>
          <CTO_SECTION_DESCRIPTION>TR03</CTO_SECTION_DESCRIPTION>
          <CTO_OILFIELD_REFERENCE/>
    <ns0:CTO_ACTTYPES>
                    <ns0:CTO_ACTTYPE>
                      <ns0:ACTTYPE_ID>TR03-MANUF</ns0:ACTTYPE_ID>
                      <ns0:ACTTYPE_DESCRIPTION>TR03-MANUF</ns0:ACTTYPE_DESCRIPTION>
                      <ns0:CTO_ACTIVITIES>
                        <ns0:CTO_ACTIVITY>
                          <ns0:ACTIVITY_ID>02-GP-TR03</ns0:ACTIVITY_ID>
                          <ns0:ACTIVITY_DESCRIPTION>02-GP-TR03</ns0:ACTIVITY_DESCRIPTION>
                          <ns0:ACTIVITY_DURATION>0</ns0:ACTIVITY_DURATION>
                        </ns0:CTO_ACTIVITY>
                      </ns0:CTO_ACTIVITIES>
                    </ns0:CTO_ACTTYPE>
    <ns0:/CTO_ACTTYPES>
        </CTO_SECTION>
        <CTO_SECTION>
          <CTO_SECTION_ID>TR02</CTO_SECTION_ID>
          <CTO_SECTION_DESCRIPTION>TR02</CTO_SECTION_DESCRIPTION>
          <CTO_OILFIELD_REFERENCE/>
    ...
    Si quelqu'un a une idée, mes tentatives en utilisant des apply-template ou des for-each ne donnent rien ;-( p.ex; :
    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
    27
    28
    29
    30
     
      <xsl:template name="structure1" priority="3" match="/s0:CTO_QUOTATION"> 
        <xsl:for-each select="s0:CTO_PROJECTS/s0:CTO_PROJECT/s0:CTO_STRUCTURES/s0:CTO_STRUCTURE"> 
          <CTO_STRUCTURE> 
            <STRUCTURE_CODE> 
              <xsl:value-of select="s0:STRUCTURE_CODE/text()"/> 
            </STRUCTURE_CODE> 
            <STRUCTURE_DESCRIPTION> 
              <xsl:value-of select="s0:STRUCTURE_DESCRIPTION/text()"/> 
            </STRUCTURE_DESCRIPTION> 
            <xsl:for-each select="s0:TMP_SECTIONS"> 
              <CTO_SECTIONS> 
                <xsl:for-each select="s0:TMP_SECTION"> 
                  <CTO_SECTION> 
                    <CTO_SECTION_ID> 
                      <xsl:value-of select="s0:TMP_SECTION_ID/text()"/> 
                    </CTO_SECTION_ID> 
                    <CTO_SECTION_DESCRIPTION> 
                      <xsl:value-of select="s0:TMP_SECTION_DESCRIPTION/text()"/> 
                    </CTO_SECTION_DESCRIPTION> 
                    <CTO_OILFIELD_REFERENCE> 
                      <xsl:value-of select="s0:TMP_OILFIELD_REFERENCE/text()"/> 
                    </CTO_OILFIELD_REFERENCE>
                  </CTO_SECTION> 
                </xsl:for-each> 
              </CTO_SECTIONS> 
            </xsl:for-each> 
          </CTO_STRUCTURE> 
        </xsl:for-each> 
      </xsl:template>

    Merci !

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Exemple trop compliqué, je ne vois pas ce que tu essaies de faire ni ce qui te pose problème.

    Simplifie la structure et les noms, et explique un peu plus longuement ce que tu essaies de faire, et quelle est la logique que tu voudrais appliquer pour, mais que tu n'arrives pas à faire.
    Ou attends quelqu'un qui voudra bien faire tout ça à ta place.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut Copier un noeud dans un autre, dans une boucle
    En essayant d'être plus clair,j'ai besoin de copier un noeud dans un autre.
    Il faudrait passer de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <STRU>
      <SE>
        <S>1</S>
        <S>2</S>
      </SE>
      <AC>
        <A>A1</A>
        <A>A2</A>
      </AC>
    </STRU>
    à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <STRU>
      <SE>
        <S>1</S>
          <AC>
            <A>A1</A>
          </AC>
        <S>2</S>
          <AC>
            <A>A2</A>
          </AC>
      </SE>
    </STRU>
    J'ai essayé qlq chose comme ça (en vain)
    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
     
      <xsl:template match="STRU">
      <STRU>
      <xsl:for-each select="SE">
      <SE>
        <xsl:value-of select="S/text()"/> 
        <xsl:apply-templates select="AC" />
      </SE>
      </xsl:for-each>
       </STRU>
      </xsl:template>
       <xsl:template match="AC" >
      <A>
    <xsl:value-of select="current()"/> 
      </A>
      </xsl:template>
    Voili, voilà....
    Merci de votre aide

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    La clarification de l'exemple est excellente.

    Note que le format de départ me semble meilleur que le format d'arrivée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      <SE>
        <S>1</S>
        <S>2</S>
      </SE>
      <AC>
        <A>A1</A>
        <A>A2</A>
      </AC>
    </STRU>
    Ici les S et les A ne sont pas mélangés, c'est facile à traiter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        <S>1</S>
        <AC>
          <A>A1</A>
        </AC>
        <S>2</S>
        <AC>
          <A>A2</A>
        </AC>
    Ici les S et les AC se suivent les uns les autres, qu'ils soient liés ou pas, ce qui complique les traitements.


    Bon, pour ta question : je ne sais pas comment tu décides que <A>A1</A> doit suivre <S>1</S> et <A>A2</A> doit suivre <S>2</S>.
    Ton essai n'a pas l'air de vouloir suivre une quelconque logique.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut
    Malheureusement je ne suis pas maître du format de sortie, je m'étais trompé en le synthétisant, le résultat final est comme ça :

    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
     
    <STRU>
      <SE>
        <S>1</S>
          <AC>
            <A>A1</A>
          </AC>
      </SE>
      <SE>
        <S>2</S>
          <AC>
            <A>A2</A>
          </AC>
      </SE>
    </STRU>
    Ce qui détermine la copie de <AC> sous le noeud <S> est la correspondance entre les chiffres dans <S> et <A> : tous les A1 vont sous S1, les A2 sous S2

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    T'as oublié de redire, et corriger si besoin, le format de départ.
    On va zapper cette partie, c'est pas le plus intéressant.

    C'est en effet un traitement un peu compliqué.

    le principe est d'avoir un template sur S :
    - faire une copie totale de l'élément S et tous ses descendants avec xsl:copy-of
    - insérer <AC> ... </AC> et à l'intérieur :
    - insérer une copie xsl:copy-of des éléments A dont le contenu correspond à celui de S :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl:template match="S">
      <xsl:copy-of select="."/>
      <AC>
        <xsl:copy-of
          select="/STRU/AC/A[starts-with(., 'A') and substring-after(., 'A') = current()]"
          />
      </AC>
    </xsl:template>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut
    Merci beaucoup, j'ai bien progressé, en partant de données d'entrée plus proche de la vraie vie :

    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
     
    <STRUCTURE>
      <SECTION>
        <TMP_SECTION_ID>TR01</TMP_SECTION_ID>
        <TMP_SECTION_DESCRIPTION>TR01_DESC</TMP_SECTION_DESCRIPTION>
        </SECTION>
        <SECTION>
        <TMP_SECTION_ID>TR02</TMP_SECTION_ID>
        <TMP_SECTION_DESCRIPTION>TR02_DESC</TMP_SECTION_DESCRIPTION>
        </SECTION>
      <CTO_ACTTYPE>
        <ACTTYPE_ID>TR01-MANUF</ACTTYPE_ID>
        <ACTTYPE_DESCRIPTION>TR01-MANUF_DESC</ACTTYPE_DESCRIPTION>
        <CTO_ACTIVITIES>
          <CTO_ACTIVITY>
            <ACTIVITY_ID>03-SF-TR01</ACTIVITY_ID>
            <ACTIVITY_DESCRIPTION>03-SF-TR01</ACTIVITY_DESCRIPTION>
            <ACTIVITY_DURATION>0</ACTIVITY_DURATION>
            <CTO_COSTELEMENTS>
              <CTO_COSTELEMENT>
                            </CTO_COSTELEMENT>
            </CTO_COSTELEMENTS>
          </CTO_ACTIVITY>
        </CTO_ACTIVITIES>
      </CTO_ACTTYPE>
    ...

    J'arrive à un résultat prometteur :
    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
     
    <SECTION>
      <TMP_SECTION_ID>TR01</TMP_SECTION_ID>
      <CTO_ACTTYPES>
        <CTO_ACTTYPE>
          <ACTTYPE_ID>TR01-MANUF</ACTTYPE_ID>
          <ACTTYPE_DESCRIPTION>TR01-MANUF_DESC</ACTTYPE_DESCRIPTION>
          <CTO_ACTIVITIES>
            <CTO_ACTIVITY>
              <ACTIVITY_ID>03-SF-TR01</ACTIVITY_ID>
              <ACTIVITY_DESCRIPTION>03-SF-TR01</ACTIVITY_DESCRIPTION>
              <ACTIVITY_DURATION>0</ACTIVITY_DURATION>
              <CTO_COSTELEMENTS>
                <CTO_COSTELEMENT>
                            </CTO_COSTELEMENT>
              </CTO_COSTELEMENTS>
            </CTO_ACTIVITY>
          </CTO_ACTIVITIES>
        </CTO_ACTTYPE>
      </CTO_ACTTYPES>
    </SECTION>
    TR01_DESC
    ...
    Avec ce XSL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <xsl:template match="TMP_SECTION_ID">
    <SECTION>  
      <xsl:copy-of select="."/>
      <!--<xsl:value-of select="/STRUCTURE/SECTION/TMP_SECTION_DESCRIPTION/text()"/> -->
       <CTO_ACTTYPES>
        <xsl:copy-of
          select="/STRUCTURE/CTO_ACTTYPE[substring-before(ACTTYPE_ID, '-') = current()]"
          />
      </CTO_ACTTYPES>
      </SECTION>
    </xsl:template>
    Restent 2 soucis :
    - Je n'arrive pas à récupérer TMP_SECTION_DESCRIPTION, la valeur TR01_DESC s'affiche après la balise </SECTION... :-(

    - Il y a une série de données hors balise à la fin du fichier résultat :
    </SECTION>
    TR03_DESCTR01-MANUFTR01-MANUF_DESC03-SF-TR0103-SF-TR010
    TR02-MANUFTR02-MANUF_DESC03-SF-TR0203-SF-TR020
    TR03-MANUFTR03-MAN

    Je continue de chercher...

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Là, il vaut mieux faire un template sur SECTION.
    - copier tous ses enfants avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:copy-of select="node()"/>
    - après ce <xsl:copy-of>, insérer le <CTO_ACTTYPES> de façon similaire.
    (Sauf que maintenant, current() est un <SECTION>, pas un <TMP_SECTION_ID>. Ou bien tu mets l'id dans une variable, ou bien tu penses à tester sur current()/TMP_SECTION_ID)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut
    Ben j'y suis presque (c'est vraiment pas natif le xsl chez moi ;-(
    Reste juste le soucis sur l'output, ou les données semblent recopiées en vrac après les balises htlm.
    En reprenant l'exemple simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <STRU>
      <SE>
        <S>1</S>
      </SE>
      <SE>
        <S>2</S>
      </SE>
      <AC>
        <A>A1</A>
        <A>A2</A>
      </AC>
    </STRU>
    En appliquant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="SE">
      <xsl:copy-of select="node()"/>
      <AC>
        <xsl:copy-of
          select="/STRU/AC/A[starts-with(., 'A') and substring-after(., 'A') = current()/S]"
          />
      </AC>
    </xsl:template>
    </xsl:stylesheet>
    J'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="utf-8"?>      
    <S>1</S>
    <AC>
      <A>A1</A>
    </AC>  
    <S>2</S>
    <AC>
      <A>A2</A>
    </AC>       
            A1  
            A2  
    Avec ces A1, A2 à la fin ;-(

  10. #10
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    #1 - T'as oublié d'insérer <STRU> et <SE>
    #2 - Pour que A1 et A2 ne viennent pas s'imposer comme ça à la fin, il faudrait ne pas appliquer les templates sur tous les nœuds du document.

    Pour ne pas oublier d'insérer STRU et n'appliquer les templates que sur les <SE> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:template match="STRU">
      <xsl:copy> <!-- copie le nom de l'élément mais pas son contenu -->
        <!-- Définir le contenu : application des templates sur SE uniquement -->
        <xsl:apply-templates select="SE"/>
      </xsl:copy>
    </xsl:template>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre à l'essai
    Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut
    Ben c tout bon, merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  2. [XSLT]Boucle for each
    Par jaq dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 10/12/2006, 12h40
  3. [XSLT] Réutiliser une variable définie dans une boucle
    Par DelphLaga dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 12/10/2006, 16h49
  4. [XSLT] xml plat à xml arborescent
    Par enigma dans le forum XSL/XSLT/XPATH
    Réponses: 24
    Dernier message: 24/06/2005, 22h43
  5. [XSLT]créer une boucle
    Par fraoustin dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 11/01/2005, 14h13

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