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

XQUERY/SGBD XML Discussion :

concatenation des éléments


Sujet :

XQUERY/SGBD XML

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut concatenation des éléments
    Bonjour,

    j'ai le code xml suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <Etudiant>
       <Code id="1">       
           <Non> AAAA</Non>
           <Prenom>aaa</Prenom>       
       </Code>
        <Code id="2">        
            <Non> BBBB</Non>
            <Prenom>bbb</Prenom>        
        </Code>    
    </Etudiant>
    et j'aimerai affecter dans chaque élément la concaténation de tous les autres éléments pour cela j'ai essayé le code XQuery suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <Resultat> 
       { 
        for $C in doc("Etudiant.xml")/Etudiant/Code 
    return
        <Code id="{$C/@id}"> 
            <Nom>{concat($C/Nom,$C/Prenom)}</Nom>
            <Prenom>{concat($C/Prenom,$C/Nom)}</Prenom>
     
    </Code>
       }
     </Resultat>
    j'obtiens le résultat suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <Resultat>
       <Code id="1">
          <Nom>aaa</Nom>
          <Prenom>aaa</Prenom>
       </Code>
       <Code id="2">
          <Nom>bbb</Nom>
          <Prenom>bbb</Prenom>
       </Code>
    </Resultat>
    le résultat souhaité est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Resultat>
       <Code id="1">
          <Nom> AAAA aaa</Nom>
          <Prenom>AAAA aaa</Prenom>
       </Code>
       <Code id="2">
          <Nom>BBBB bbb</Nom>
          <Prenom>BBBB bbb</Prenom>
       </Code>
    </Resultat>
    Merci pour votre aidé

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Il y a une typo dans ton XML source :
    Au lieu de "Nom"

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    ah ouiii merci pour la correction
    maintenant je cherche à faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Resultat>
       <Code id="1">
          <Nom> AAAA aaa BBBB bbb</Nom>
          <Prenom>AAAA aaa BBBB bbb</Prenom>
       </Code>
       <Code id="2">
          <Nom>AAAA aaa BBBB bbb</Nom>
          <Prenom>AAAA aaa BBBB bbb</Prenom>
       </Code>
    </Resultat>
    ps: je débute en xml

    Merci

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    j'ai réussis à faire cette concaténation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="UTF-8"?>
    <Resultat>
       <Code id="1 2">
          <Nom> AAAA BBBB aaabbb</Nom>
          <Prenom> AAAA BBBB aaabbb</Prenom>
       </Code>
    </Resultat>
    avec le code xqury suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <Resultat> 
       { 
        for $C in doc("Etudiant.xml")/Etudiant
     
    return
    <Code id="{$C/Code/@id}"> 
    <Nom>{$C/Code/Nom/text(), " ", $C/Code/Prenom/text()}</Nom>
    <Prenom>{$C/Code/Nom/text()," ",$C/Code/Prenom/text()}</Prenom>
    </Code>
     }
     </Resultat>
    comment faire pour inverser les chaines pour avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="UTF-8"?>
    <Resultat>
       <Code id="1 2">
          <Nom> AAAA  aaa BBBB bbb</Nom>
          <Prenom> AAAA aaa BBBB bbb</Prenom>
       </Code>
    </Resultat>
    Merci

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Euh ? Selons quels critères souhaites-tu éclater "aaabbb" en "aaa" et "bbb" ?
    Autrement dit, pourquoi ce serait pas "aa" "abbb" ou "aaab" "bb" ?

    De manière générale, l'exemple devient compliqué à comprendre. Et les choses sont toujours plus compliquées à séparer si elles ne le sont pas déjà avec des balises.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Oui, je comprend plus trop où tu veux en venir ici nom & prénom n'ont plus aucun sens. Tu ne boucle plus sur les "code" et içi c'est xpath qui te fait une sorte de concaténation de tous les noms, puis des prénoms.

    Je me suis fait un petit exemple simple en xquery pour tester à partir de ton premier exemple (je débute aussi dans le domaine), et ça fonctionne correctement.
    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
    xquery version "1.0" encoding "UTF-8";
    let $stdin := document{<Etudiant>
        <Code id="1">
            <Nom>AAAA</Nom>
            <Prenom>aaa</Prenom>
        </Code>
        <Code id="2">
            <Nom>BBBB</Nom>
            <Prenom>bbb</Prenom>
        </Code>
    </Etudiant>}
     
    return
    <Resultat>
    {
    for $C in $stdin/Etudiant/Code 
    return
        <Code id="{$C/@id}"> 
            <NomComplet>{concat($C/Nom,' ',$C/Prenom)}</NomComplet>
    	</Code>
    }
     </Resultat>

Discussions similaires

  1. Concatenation des éléments de deux listes
    Par bellak dans le forum Linq
    Réponses: 7
    Dernier message: 02/06/2010, 14h32
  2. tranférer des éléments d'une base
    Par john_wayne dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 21/06/2004, 15h33
  3. [VB.NET] Enregistrement des éléments d'une listBox
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 9
    Dernier message: 18/05/2004, 14h48
  4. couleurs des éléments 3D d'une appli
    Par Eugénie dans le forum MFC
    Réponses: 29
    Dernier message: 12/03/2004, 11h31
  5. [TShellListView] Tri des éléments
    Par M.Dlb dans le forum Composants VCL
    Réponses: 4
    Dernier message: 16/12/2003, 22h35

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