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 :

[XQUERY] Récupèrer plusieurs éléments


Sujet :

XQUERY/SGBD XML

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut [XQUERY] Récupèrer plusieurs éléments
    Bonjour,
    J'ai un document biblio.xml ci-dessous et je souhaite récupérer l'année, le titre et le nom du livre. Le code que j'ai utilisé ne me renvoie pas la partie où il y a book year=1994

    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
     
    <bib>
        <doc year="1994">
            <title>TCP/IP Illustrated</title>
            <author><last>Stevens</last><first>W.</first></author>
            <publisher>Addison-Wesley</publisher>
            <price>65.95</price>
        </book>
     
        <book year="1992">
            <title>Advanced Programming in the Unix environment</title>
            <author><last>Stevens</last><first>W.</first></author>
            <publisher>Addison-Wesley</publisher>
            <price>65.95</price>
        </book>
     
        <book year="2000">
            <title>Data on the Web</title>
            <author><last>Abiteboul</last><first>Serge</first></author>
            <author><last>Buneman</last><first>Peter</first></author>
            <author><last>Suciu</last><first>Dan</first></author>
            <publisher>Morgan Kaufmann Publishers</publisher>
            <price>39.95</price>
        </book>
     
        <book year="1999">
            <title>The Economics of Technology and Content for Digital TV</title>
            <editor>
                   <last>Gerbarg</last><first>Darcy</first>
                    <affiliation>CITI</affiliation>
            </editor>
                <publisher>Kluwer Academic Publishers</publisher>
            <price>129.95</price>
        </book>
     
    </bib>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	for $b in doc("biblio.xml")//book,
    	    $t in $b/title,
    	    $a in $b/author
     
    	return 
    		<res y="{$b/@year}">
    			{$t}
    			{$a}
    		</res>

  2. #2
    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
    Hello,

    tu peux faire doc("biblio.xml")//(book | doc) par exemple.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    bonjour,
    il me renvoie cette erreur
    XPST0003: XQuery syntax error in #...io.xml")//(book | doc) $t#:
    expected "return", found "$"
    Failed to compile query

  4. #4
    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
    Tu n'aurais pas oublié la virgule, par hasard ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Bonjour,
    J'ai recopié ce que vous avez mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	for $b in doc("biblio.xml")//(book | doc)
    	    $t in $b/title,
    	    $a in $b/author
     
    	return 
    		<res y="{$b/@year}">
    			{$t}
    			{$a}
    		</res>

  6. #6
    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, oui mais au départ tu avais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for $b in doc("biblio.xml")//book,
        $t in $b/title,
        $a in $b/author
    Il y a une virgule sur la première ligne, donc vraisemblablement tu avais compris à quoi servent les virgules et pourquoi il faut en mettre.

    Alors même si je te donne une nouvelle expression de sélection d'éléments pour faire ce que tu demandes,
    qu'est-ce que cela change à la syntaxe du for et à la nécessité d'utiliser des virgules comme avant ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    ha oui ^^.
    merci de votre aide

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/08/2015, 10h26
  2. Récupérer plusieurs éléments dans un fichier
    Par rookie_shell dans le forum Linux
    Réponses: 4
    Dernier message: 08/04/2009, 17h34
  3. [E-03] Récupérer "plusieurs éléments" d'un tableau croisé dynamique
    Par Access Newbie dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/03/2009, 14h48
  4. Sélection de plusieurs éléments
    Par ti-ben dans le forum Langage
    Réponses: 8
    Dernier message: 04/09/2005, 11h54
  5. [CR] copier-coller plusieurs éléments de l'etat
    Par quaresma dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 18/04/2005, 14h46

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