1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2017
    Messages : 7
    Points : 5
    Points
    5

    Par défaut Récupérer le contenu en dehors de balises en xquery

    Bonjour à tous,

    Je fais appel à vos conseils car je suis bloquée.
    Voilà, j'ai un fichier XML du type :

    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
    let $fichier := 
            <balise>
                xxxxxxxxxxxxxxxxxxx
                     <span class="info">
                            aaaaaaaaaaaa
                      </span>
     
                -- Texte recherché 1    --       
     
                     <span class="info">
                          bbbbbbbbbbbbbb
                      </span>
     
               -- Texte recherché 2 --
     
                      <span class="info">
                         ccccccccccccccccc
                      </span>
                yyyyyyyyyyyyyyyyyyyyy
     
           </balise>
    Et le problème sur lequel je m'arrache les cheveux : je voudrais récupérer en xquery le texte compris entre toutes les balises <span> sous la forme d'une liste ("Texte recherché 1"," texte recherché 2") sachant qu'il y a toujours au minimum 2 balises span.
    J'ai essayé avec following-sibling[1] et ça marche dans le cas ci-dessus, mais si le texte 2 n'existe pas (c'est-à-dire s'il y a 2 balises span juxtaposées) alors ça décale tout et je récupère le contenu textuel situé après la dernière balise span...

    Si vous pouvez m'aider, un grand merci !!

  2. #2
    Membre chevronné
    Inscrit en
    octobre 2011
    Messages
    1 012
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 012
    Points : 1 753
    Points
    1 753

    Par défaut

    Si vous voulez s'exercer sur les axes relatant des siblings des noeuds text(), on peut faire comme ça.
    Code xquery : 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
    <root>{
    let $fichier := 
        <balise>
            xxxxxxxxxxxxxxxxxxx
            <span class="info">
                aaaaaaaaaaaa
            </span>
     
            -- Texte recherché 1    --
     
            <span class="info">
                bbbbbbbbbbbbbb
            </span>
     
            -- Texte recherché 2 --
     
            <span class="info">
                ccccccccccccccccc
            </span>
            yyyyyyyyyyyyyyyyyyyyy
        </balise>
     
    for $text in $fichier/text()[preceding-sibling::span and following-sibling::span]
    return
        <text>{$text}</text>
    }</root>

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2017
    Messages : 7
    Points : 5
    Points
    5

    Par défaut

    Merci Tsuji, c'est exactement ce qu'il me fallait !!

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2017
    Messages : 7
    Points : 5
    Points
    5

    Par défaut

    Bonjour à tous,

    je m'aperçois qu'il me faut en plus de ce qui est entre balises le contenu des balises span et ce qui figure entre elles. Dans l'exemple que j'avais donné, cela veut dire : aaaaa texte 1 bbbbbb texte 2 cccccc.

    Je n'arrive qu'à tout avoir dans le désordre .
    Merci d'avance pour vos conseils

  5. #5
    Membre chevronné
    Inscrit en
    octobre 2011
    Messages
    1 012
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 012
    Points : 1 753
    Points
    1 753

    Par défaut

    Il y a un ordre naturel dit documentaire et je suppose c'est cet ordre qui est souhaité d'avoir. On peut faire comme ça.
    Code xquery : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for $text in $fichier//text()
    return
        if ($text/preceding-sibling::span and $text/following-sibling::span) then
            <text>{$text}</text>
        else (
            if ($text/parent::span) then
                <text2>{$text}</text2>
            else (
            )
        )

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2017
    Messages : 7
    Points : 5
    Points
    5

    Par défaut

    Bonjour Tsuji, c'est parfait.
    Merci pour tout !

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

Discussions similaires

  1. récupérer le contenu d'un div , balises y compris
    Par patrickbaras dans le forum jQuery
    Réponses: 9
    Dernier message: 28/07/2012, 10h15
  2. [Tableaux] Récupérer le contenu d'une balise HTML
    Par StarNab dans le forum Fonctions
    Réponses: 2
    Dernier message: 01/09/2006, 12h38
  3. [DOM] Récupérer le contenu d'une balise donnée
    Par mimi31110 dans le forum XML
    Réponses: 4
    Dernier message: 26/06/2006, 23h46
  4. Récupérer le contenu de la balise title
    Par roots dans le forum Fichiers
    Réponses: 2
    Dernier message: 11/09/2005, 16h17
  5. [Balise XML] Comment récupérer le contenu entre 2 balise?
    Par ZoumZoumMan dans le forum C++Builder
    Réponses: 5
    Dernier message: 05/03/2004, 16h36

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