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 :

mise en forme du resultat d'une requete Xquery-XML


Sujet :

XQUERY/SGBD XML

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut mise en forme du resultat d'une requete Xquery-XML
    bonjour
    je travail sur un projet avec utilisation de langage de requête XQuery.
    a partir de ma requête je doit retourné seulement une ligne mais le problème rencontré c'est que ma requête retourne tous les valeurs dans le XML
    voici le contenu de mon Fichier XML
    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
    <DominantColorFilm>
    <Film>
        <Descriptor>
            <SpatialCoherency>0</SpatialCoherency>
            <Parameters>
                <Percentage>41.33</Percentage>
                <Index>40 40 40</Index>
            </Parameters>
            <Parameters>
                <Percentage>14.54</Percentage>
                <Index>216 216 216</Index>
            </Parameters>
            <Parameters>
                <Percentage>9.58</Percentage>
                <Index>128 128 128</Index>
            </Parameters>
            <Parameters>
                <Percentage>6.55</Percentage>
                <Index>40 40 128</Index>
            </Parameters>
            <Parameters>
                <Percentage>6.45</Percentage>
                <Index>40 128 216</Index>
            </Parameters>
            <Parameters>
                <Percentage>5.80</Percentage>
                <Index>128 40 40</Index>
            </Parameters>
            <Parameters>
                <Percentage>5.20</Percentage>
                <Index>40 128 128</Index>
            </Parameters>
            <Parameters>
                <Percentage>2.74</Percentage>
                <Index>128 128 216</Index>
            </Parameters>
            <Parameters>
                <Percentage>2.38</Percentage>
                <Index>216 216 128</Index>
            </Parameters>
            <Parameters>
                <Percentage>2.17</Percentage>
                <Index>128 216 216</Index>
            </Parameters>
        </Descriptor>
    </Film>
        </DominantColorFilm>
    et voici mon XQuery

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for $d in doc ("1055369.xml")/DominantColorFilm
    where $d//Index = "40 40 40"
    return 
     <Information>
        <t>{$d//Percentage/text() } </t>
        <l>{$d//Index/text() }</l>
     
      </Information>
    et voici résultat de la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <Information>
       <t>41.3314.549.586.556.455.805.202.742.382.17</t>
       <l>40 40 40216 216 216128 128 12840 40 12840 128 216128 40 4040 128 128128 128 216216 216 128128 216 216</l>
    </Information>
    Il m'affiche tous les donnée dans le fichier XML et moi je veux affichier seulement le résultat de Index = "40 40 40"

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Regardez bien comment faire pour localizer bien plus precis les éléments qui détienent les données intéressées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for $d in doc("1055369.xml")/DominantColorFilm/Film/Descriptor/Parameters
    where $d/Index = "40 40 40"
    return 
     <Information>
        <t>{$d/Percentage/text()}</t>
        <l>{$d/Index/text()}</l>
     </Information>

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Exactement, Merci pour ton aide
    est ce que je peux savoir comment on peut utilisé "like" dans le XQUERY comme dans SQL

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    On peut faire opération comme LIKE en sql avec une étendue de puissance surchargée indiscutablement. Il peut se faire avec des fonctions de xpath ou bien avec des fonctions internes ou par extension d'après chacun comme il souhaître.

    A titre de demonstrer, on peut sortir les données avec Index commence par 40 puis espace séparé de deux blocs de décimal de 2 ou 3 digits. Voyez c'est déjà pas trop commode avec l'opération de LIKE en sql.

    Dans une réalisation plutôt basée sur des fonctions de xpath, on peut faire ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for $d in doc("1055369.xml")/DominantColorFilm/Film/Descriptor/Parameters[matches(Index,'^40\s\d{2,3}\s\d{2,3}$')]
    return 
     <Information>
        <t>{$d/Percentage/text()}</t>
        <l>{$d/Index/text()}</l>
     </Information>
    Dans une réalisation plutôt basée sur des fonctions de xquery, on peut faire ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for $d in doc("1055369.xml")/DominantColorFilm/Film/Descriptor/Parameters
    where matches($d/Index,'^40\s\d{2,3}\s\d{2,3}$')
    return 
     <Information>
        <t>{$d/Percentage/text()}</t>
        <l>{$d/Index/text()}</l>
     </Information>

Discussions similaires

  1. [AC-2007] Mise en forme conditionnelle suivant le resultat d'une requete
    Par Danceg dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 11/05/2012, 06h07
  2. [XQUERY] mise en forme du resultat d'une requete
    Par megaloplex dans le forum XQUERY/SGBD
    Réponses: 3
    Dernier message: 15/12/2009, 11h05
  3. [SQL] Mise en Forme du résultat d'une requete SQL
    Par popov130 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/11/2007, 15h19
  4. Mise en forme des résultats d'une requete
    Par johanlft dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/10/2007, 12h28
  5. Mise a jour selon resultat d'une requete dans meme table
    Par Udutronik dans le forum VBA Access
    Réponses: 4
    Dernier message: 09/08/2007, 15h36

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