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] transformation complexe


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [XSLT] transformation complexe
    Bonjour,

    Je souhaite transformer un fichier XML ayant la structure suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    |------<ENTETE> A </ENTETE>
    |------<ENTETE> B </ENTETE>
    |------<ENTETE> C </ENTETE>
    |------<DETAIL>
                   |--------<ENTETE> B </ENTETE>
                                              |----------------<COM> xxxx </COM>
                   |--------<ENTETE> C </ENTETE>
                                              |----------------<COM> yyyyyy </COM>
                                              |----------------<COM> xxxx </COM>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    EN
     
    |------<ENTETE> A </ENTETE>
    |------<ENTETE> B </ENTETE>
                            |----------------<COM> xxxx </COM>
    |------<ENTETE> C </ENTETE>
                            |----------------<COM> yyyyyy </COM>
                            |----------------<COM> xxxx </COM>

    J ai essayé avec xsl:key et xsl:loop mais je n'y arrive pas .....

    Est ce que qqu'un peut m'aider ?

    A l'avance merci

    Guillaume

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    salut guillome et bienvenu sur le forum,

    peux tu nous envoyer la feuille de style (xsl) que tu as fait pour l'adapter?

    remarque : c'est pas si compliqué que ça

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse.

    Je veux bien t'envoyer le xsl mais il est en fait bien plus compliqué que ce que j ai expliqué il y a enormenent de balise et de transformation.

    je peux te fournir le xml et le xsd facilement.

    Ci-dessous le fichiers xml d'origine allégé :

    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
    48
    49
    50
    51
    52
    53
    <?xml version="1.0" encoding="UTF-8"?>
       <HEADER>
          <item>
             <ACTION>CR</ACTION>
             <SALES_ORG>2804</SALES_ORG>
             <USER_NAME>MONNETH</USER_NAME>
             <DOC_NUMBER>0000029016</DOC_NUMBER>
             <SOLD_TO>0000500152</SOLD_TO>
             <CURRENCY>EUR</CURRENCY>
             <PURCH_NO/>
             <TYPE_COMMANDE>ZTND</TYPE_COMMANDE>
             <INTERCO/>
             <IHREZ/>
             <BSTKD>TEST REF CLIENT SAISIE FORM ND</BSTKD>
             <VTWEG>TR</VTWEG>
             <SPART>00</SPART>
          </item>
       </HEADER>
       <ITEMS>
          <item>
             <POSTE_COMMANDE>000010</POSTE_COMMANDE>
          </item>
          <item>
             <POSTE_COMMANDE>000020</POSTE_COMMANDE>
          </item>
       </ITEMS>
       <PSTOP>
          <item>
             <POSTE_COMMANDE>000010</POSTE_COMMANDE>
             <Z_ND_POINSTOP>Libell瞱 poste 10</Z_ND_POINSTOP>
          </item>
          <item>
             <POSTE_COMMANDE>000010</POSTE_COMMANDE>
             <Z_ND_POINSTOP>Libell瞲 poste 10</Z_ND_POINSTOP>
          </item>
          <item>
             <POSTE_COMMANDE>000010</POSTE_COMMANDE>
             <Z_ND_POINSTOP>Libell瞳 poste 10</Z_ND_POINSTOP>
          </item>
          <item>
             <POSTE_COMMANDE>000020</POSTE_COMMANDE>
             <Z_ND_POINSTOP>Libell瞱 poste 20</Z_ND_POINSTOP>
          </item>
          <item>
             <POSTE_COMMANDE>000020</POSTE_COMMANDE>
             <Z_ND_POINSTOP>Libell瞲 poste 20</Z_ND_POINSTOP>
          </item>
             <item>
             <POSTE_COMMANDE>000030</POSTE_COMMANDE>
             <Z_ND_POINSTOP>Libell瞱 poste 30</Z_ND_POINSTOP>
          </item>
    <PSTOP/>
    </rfc:Z_03_SD_EAI_ENVOI_OT>
    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
    <?xml version="1.0" encoding="UTF-8"?>
       <HEADER>
          <item>
             <ACTION>CR</ACTION>
             <SALES_ORG>2804</SALES_ORG>
             <USER_NAME>MONNETH</USER_NAME>
             <DOC_NUMBER>0000029016</DOC_NUMBER>
             <SOLD_TO>0000500152</SOLD_TO>
             <CURRENCY>EUR</CURRENCY>
             <PURCH_NO/>
             <TYPE_COMMANDE>ZTND</TYPE_COMMANDE>
             <INTERCO/>
             <IHREZ/>
             <BSTKD>TEST REF CLIENT SAISIE FORM ND</BSTKD>
             <VTWEG>TR</VTWEG>
             <SPART>00</SPART>
          </item>
       </HEADER>
       <ITEMS>
          <item>
             <POSTE_COMMANDE>000010</POSTE_COMMANDE>
             <Z_ND_POINSTOP>Libell? poste 10</Z_ND_POINSTOP>
             <Z_ND_POINSTOP>Libell? poste 10</Z_ND_POINSTOP>
             <Z_ND_POINSTOP>Libell? poste 10</Z_ND_POINSTOP>
          </item>
          <item>
             <POSTE_COMMANDE>000020</POSTE_COMMANDE>
             <Z_ND_POINSTOP>Libell? poste 20</Z_ND_POINSTOP>
             <Z_ND_POINSTOP>Libell? poste 20</Z_ND_POINSTOP>
          </item>
       </ITEMS>
    <PSTOP/>
    </rfc:Z_03_SD_EAI_ENVOI_OT>

    Voila

    je joint tout de meme toute les structures xml, xsl,xsd en entrée et en sortie mais ca me semble compliqué de comprendre quand on est pas dans le sujet ....
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    peux tu envoyer un xml correct? (il ya des problemes de syntaxe!)

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Février 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Voilà le fichier xml corrigé.

    L'erreur était xur la balise de fin PSTOP :
    J'avais <PSTOP/> au lieu de </PSTOP>
    Fichiers attachés Fichiers attachés

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    il manquie aussi un truc dans le xsl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <xsl:for-each select="key(../../PSTOP/item/POSTE_COMMANDE,POSTE_COMMANDE)">
    comment tu declare cette index? (key)? il n'est pas dans le xsl.

Discussions similaires

  1. [XSLT]Transformation d'images
    Par boleduch dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/10/2005, 14h03
  2. [XSLT]Transformer une partie d'un document
    Par Floyd dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 02/10/2005, 14h03
  3. [XML][XSLT] transformer le xml en binaire via une xslt
    Par chama dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/07/2005, 11h42
  4. [XSLT] transformation XHTML->XML
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 23/05/2005, 13h15
  5. [XSLT] transformation XML->XML en php
    Par amellouki dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 03/03/2005, 12h32

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