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 Débutant] tri de données dans un XML


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Par défaut [XSLT Débutant] tri de données dans un XML
    Bonjour à tous,

    j'ai un petit souci avec ma feuille de style XSL:

    Soit le XML suivant:

    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
     
          <?xml version="1.0" encoding="UTF-8" ?>
          - <Annonce xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          - <Parution NumeroPublication="1">
          - <Edition NomEdition="TOTO">
          - <SiteDepot CodeSite="753810">
            <CP No="75000" LDCPM="0" PM="0" />
           <CPEM No="75000" NbEM="0" NbLDCP="0" />
           <CP No="92000" LDCPM="0" PM="0" />
           <CPEM No="92000" NbEM="0" NbLDCP="0" />
           <CP No="93000" LDCPM="0" PM="0" />
           <CPEM No="93000" NbEM="0" NbLDCP="0" />
           </SiteDepot>
          - <SiteDepot CodeSite="750295">
           <CP No="21000" LDCPM="0" PM="0" />
           <CPEM No="21000" NbEM="0" NbLDCP="0" />
           <CP No="45000" LDCPM="0" PM="0" />
           <CPEM No="45000" NbEM="0" NbLDCP="0" />
           <CP No="77000" LDCPM="0" PM="0" />
           <CPEM No="77000" NbEM="0" NbLDCP="0" />
           <CP No="91000" LDCPM="0" PM="0" />
           <CPEM No="91000" NbEM="0" NbLDCP="0" />
           <CP No="95000" LDCPM="0" PM="0" />
           <CPEM No="95000" NbEM="0" NbLDCP="0" />
           </SiteDepot>
          ...

    Je voudrais faire en sorte que ,dans la balise CodeSite, j'obtienne les données rangées de cette manière :


    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
     
          <?xml version="1.0" encoding="UTF-8" ?>
          - <Annonce xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           - <Parution NumeroPublication="1">
          - <Edition NomEdition="TOTO">
          - <SiteDepot CodeSite="753810">
           <CP No="75000" LDCPM="0" PM="0" />
           <CP No="92000" LDCPM="0" PM="0" />
           <CP No="93000" LDCPM="0" PM="0" />
           <CPEM No="75000" NbEM="0" NbLDCP="0" />
           <CPEM No="92000" NbEM="0" NbLDCP="0" />
           <CPEM No="93000" NbEM="0" NbLDCP="0" />
           </SiteDepot>
          - <SiteDepot CodeSite="750295">
           <CP No="21000" LDCPM="0" PM="0" />
           <CP No="45000" LDCPM="0" PM="0" />
            <CP No="77000" LDCPM="0" PM="0" />
            <CP No="91000" LDCPM="0" PM="0" />
            <CP No="95000" LDCPM="0" PM="0" />
            <CPEM No="21000" NbEM="0" NbLDCP="0" />
            <CPEM No="45000" NbEM="0" NbLDCP="0" />
            <CPEM No="95000" NbEM="0" NbLDCP="0" />
            <CPEM No="77000" NbEM="0" NbLDCP="0" />
            <CPEM No="91000" NbEM="0" NbLDCP="0" />
           </SiteDepot>
          ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    voici mon XSL :  
     
          <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
          <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
                 <xsl:template match="SiteDepot">
                         <xsl:copy>
                                 <xsl:copy-of select="@*"/>
                                 <xsl:copy-of select="CP"/>
                                 <xsl:copy-of select="CPEM"/>
                         </xsl:copy>
          </xsl:template>
     
          </xsl:stylesheet>
    J'obtiens un tri , mais le fichier de sortie contient des lignes de "xmlns xsi="http://www.w3.org/2001/XMLSchema-instance" .
    De plus, je ne sais pas comment rajouter toutes les autres balises existantes : Annonce, Parution, Edition

    Est-cela bonne méthode ? ou dois-je faire un sort ? merci de m'aider car je suis débutant en xsl !!!

    Merci d'avance pour votre aide !

  2. #2
    Membre éclairé
    Avatar de strat0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2003
    Messages : 288
    Par défaut
    En plus de ce que GrandFather t'a déjà dit dans l'autre sujet, je dirais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <xsl:template match="SiteDepot">
                         <xsl:copy>
                                 <xsl:copy-of select="@*"/>
                                 <xsl:for-each select="CP">
                                         <xsl:sort select="@No"/>
                                         <xsl:copy-of select="."/>
                                 </xsl:for-each>
                                 <xsl:for-each select="CPEM">
                                         <xsl:sort select="@No"/>
                                         <xsl:copy-of select="."/>
                                 </xsl:for-each>
                         </xsl:copy>
          </xsl:template>

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Par défaut
    merci , j ' avance dans mon travail !

    Mais j'ai encore un soucis, car quand je lis mon fichier de sortie, j'ai des lignes du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <SiteDepot CodeSite="753810">
      <CP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" No="75000" LDCPM="0" PM="0"/>
      <CP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" No="92000" LDCPM="0" PM="0"/>
      <CP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" No="93000" LDCPM="0" PM="0"/>
      <CPEM xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" No="75000" NbEM="0" NbLDCP="0"/>
      <CPEM xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" No="92000" NbEM="0" NbLDCP="0"/>
      <CPEM xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" No="93000" NbEM="0" NbLDCP="0"/>
    </SiteDepot>
    En analysant bien, il s'agirait du fichier source xml dont les premières lignes contiennent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?xml version="1.0" encoding="UTF-8"?>
    <DRL xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="W:\DSCN\Isa\CAP\CourrierPresse\Flux-Donnees\DonneesRoutageLogique\In
    terchangeDRL\DRL-Schema-v2.c.xsd">
    J'ai du mal à comprendre pourquoi il me remet cette ligne constamment ...

    Merci d'avance pour vos réponses !!

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Par défaut
    c'est bon, merci tout le monde , j'ai résolu mon problème !!!

    Encore bravo pour tout ce que vous faites

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

Discussions similaires

  1. Tri de données dans un tableau
    Par GESCOM2000 dans le forum Contribuez
    Réponses: 6
    Dernier message: 06/12/2006, 15h55
  2. Réponses: 9
    Dernier message: 21/02/2006, 09h06
  3. Réponses: 2
    Dernier message: 16/01/2006, 19h34
  4. Supprimer des données dans un xml
    Par pingoui dans le forum Format d'échange (XML, JSON...)
    Réponses: 49
    Dernier message: 12/08/2004, 16h49
  5. [Débutant] Triage de données dans un String
    Par Poilou dans le forum C++Builder
    Réponses: 4
    Dernier message: 29/01/2004, 16h21

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