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

JavaScript Discussion :

Recherche dans XML


Sujet :

JavaScript

  1. #1
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut Recherche dans XML
    Bonjour, je voudrai savoir si il y a un moyen de rechercher des données dans un fichier XML. Par exemple dans ce fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <root>
    <select name='livre'>
    <option value='7'>Dune</option>
    <option value='8'>La barriere de santaroga</option>
    </select>
    </root>
    Je voudrai pouvoir rechercher "livre" et prendre tout ce qui se trouve entre <select> et </select> par exemple.
    Je ne voit pas comment faire.
    Merci pour votre aide.

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    bien sûr, il te suffit de le transformer un objet dom xml

    (je crois que c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Document('contenu du document')
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Document('chemin vers le document')
    je penche plutôt pour la première ^^)

  3. #3
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Et apres je peut l'utiliser comme par exemple document.value?

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    exactement...

    tu pourra l'utiliser comment le "document"

  5. #5
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Eu par contre, j'ai essayer new Document("http://127.0.0.1/ajax/auteur.xml"); et new Document("auteur.xml"); et aucun des deux ne marche

  6. #6
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    il te faut donc d'abord récupérer le contenu du fichier
    (là je suis désolé, mais je ne sais pas comment faire...)

  7. #7
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Citation Envoyé par Swoög
    (là je suis désolé, mais je ne sais pas comment faire...)
    Je viens de réflechir, pourquoi pas un petit coup d'AJAX en GET ? (l'avantage est qu'en plus la variable dom xml est automatiquement créée

  8. #8
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ben la fonction que j'utilise est celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function xmltxt(){
        getXhr();
        xhr.onreadystatechange = function(){
         if(xhr.readyState == 4 && xhr.status == 200){
          document.getElementById('auteu').innerHTML = xhr.responseText;
         }
        }
     
        xhr.open("GET", "auteur.xml", true); 
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
        xhr.send(null);
       }
    Mais alors comment faire?

  9. #9
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339

  10. #10
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ben jusque la je me suis inspirer de cette page et je n'ai pas reussi a faire ce que je voulais !!

  11. #11
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('auteu').innerHTML = xhr.responseXML.getElementsByTagName('root')[0].innerHTML

  12. #12
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Oui mai cela extrait ce qu'il y a entre les balises et n'affiche que le texte, moi dans ce que je veut, je veut garder les balises comme ce que j'ai montrer dans mon premier post.
    Car cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <div style="text-align: left;">document.getElementById('auteu').innerHTML = xhr.responseXML.getElementsByTagName('root')[0].innerHTML
     
    </div>

    Me donne undefined.

  13. #13
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    undefined ? pour quoi ?

    si tu montrais précisément quelle partie tu veux extraire du xml

  14. #14
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Alors pourquoi undefined ca j'en sait rien.
    Sinon alors le xml c'est:
    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
     
    <div style="text-align: left;"><?xml version="1.0" encoding="iso-8859-1"?>
    <root>
    <select name='livre1'>
    <option value='1'>Candide</option>
    <option value='2'>Zadig</option>
    </select>
    <select name='livre2'>
    <option value='3'>Dune</option>
    <option value='4'>La barriere de santaroga</option>
    </select>
    <select name='livre3'>
    <option value='5'>Petit nicolas</option>
    <option value='6'>Sorcierer bleu</option>
    </select>
    <select name='livre4'>
    <option value='7'>Biblio rose</option>
    <option value='8'>Collect verte</option>
    </select>
    </root></div>
    Et moi je veut en faite dans ce xml chercher la valeur livre en fonction d'une variable pour remplire une liste donc si dans ma premiere liste je choisit livre3, je veut chercher et extraire du xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select name='livre3'>
    <option value='5'>Petit nicolas</option>
    <option value='6'>Sorcierer bleu</option>
    </select>

  15. #15
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    dans cas, essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('auteu').innerHTML = xhr.responseXML.getElementsByName('livre3')[0].outerHTML;
    pour le undefined, il faudrait savoir quel objet est reconnu comme undefined (c'est précisé dans le message d'erreur normalement)

  16. #16
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Alors le undefined n'est pas un message d'erreur mais ce qui s'affiche dans la div.
    Et sinon pour le code que tu vient de me donner ca ne marche pas et dans la console javascript de firefox j'ai cette erreur:

    Erreur : xhr.responseXML.getElementsByName is not a function
    Fichier source : http://127.0.0.1/ajax/xml.php
    Ligne : 69

    et ligne 69 c'est ceci:
    document.getElementById('auteu').innerHTML = xhr.responseXML.getElementsByName('livre3')[0].outerHTML;

  17. #17
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    exacte, j'ai oublié un petit truc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('auteu').innerHTML = xhr.responseXML.documentElement.getElementsByName('livre3')[0].outerHTML;

  18. #18
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Toujours pareille. Cette fois:
    Erreur : xhr.responseXML.documentElement.getElementsByName is not a function
    Fichier source : http://127.0.0.1/ajax/xml.php
    Ligne : 69

  19. #19
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    il semble que seul getElementsByTagName soit disponible ( :'( )

    il faudrait donc que tu modifies ton .xml, exemple :
    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
    <?xml version="1.0" encoding="iso-8859-1"?>
    <root>
    <livre1>
    <option value='1'>Candide</option>
    <option value='2'>Zadig</option>
    </livre1>
    <livre2>
    <option value='3'>Dune</option>
    <option value='4'>La barriere de santaroga</option>
    </livre2>
    <livre3>
    <option value='5'>Petit nicolas</option>
    <option value='6'>Sorcierer bleu</option>
    </livre3>
    <livre4>
    <option value='7'>Biblio rose</option>
    <option value='8'>Collect verte</option>
    </livre4>
    </root>
    avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('auteu').innerHTML = '<select name="livre3">' + xhr.responseXML.documentElement.getElementsByTagName('livre3')[0].innerHTML + '</select>';

  20. #20
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Celui qui veut une bete de course se met sous ma fenetre car la l'ordi va y passer!!!
    Ca fait toujours la meme erreur .

    Erreur : xhr.responseXML.documentElement.getElementsByTagName("livre3")[0] has no properties
    Fichier source : http://127.0.0.1/ajax/xml.php
    Ligne : 69
    et meme aussi
    Erreur : xhr.responseXML.getElementsByTagName("livre3")[0] has no properties
    Fichier source : http://127.0.0.1/ajax/xml.php
    Ligne : 69

Discussions similaires

  1. recherche dans xml
    Par totoz dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 21/08/2009, 14h50
  2. [DOM XML] Recherche dans xml via php ?
    Par Naoli dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 21/04/2007, 08h54
  3. Réponses: 4
    Dernier message: 28/10/2005, 09h59
  4. recherche dans un fichier xml (castor)
    Par pingoui dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 06/09/2004, 14h28
  5. recherche dans un document xml via DOM
    Par ndoye_zaff dans le forum APIs
    Réponses: 5
    Dernier message: 11/06/2003, 14h44

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