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 :

[AJAX] Lire fichier XML


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 65
    Points
    65
    Par défaut [AJAX] Lire fichier XML
    Bonjour,

    Je continue mes petits débuts avec ajax et je commence pleinement avec xml (c'est pour vous dire le niveau !). En surfant un peu je me suis inspirée de codes pour lire des données dans un fichier xml mais le code obtenu ne fonctionne pas.

    Je voudrais interroger mon fichier xml avec mon code ajax afin d'aller y recueillir les informations et les afficher dans les champs d'un formulaire html.

    Voici ma page xml (test.xml) :

    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="ISO-8859-1"?>
    <bibliotheque>
        <commentaire>
            <idcomm>111</idcomm>
            <titre>MonTest</titre>
            <comm>Ceci est ma note... </comm>
            <type>ns</type>
            <pj>pj.jpg</pj>
        </commentaire>
    </bibliotheque>
    Voici mon code javascript :

    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
     
    <script type="text/javascript">
    function loadXML(){
        if (document.implementation && document.implementation.createDocument){
            xmlDoc = document.implementation.createDocument("", "", null);
            xmlDoc.onload = getData;
        }
        else if (window.ActiveXObject){
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.onreadystatechange = function(){
                if (xmlDoc.readyState == 4) getData()
            };
        }
        if(xmlDoc){
                  xmlDoc.load("test.xml");
        }
     
    }
     
     
    function champs() {
        loadXML();  
        var titre = docXml.getElementsByTagName("titre");
        alert (docXml.getElementsByTagName("titre"));
        var comm = docXml.getElementsByTagName('comm');
     
        document.forms["NomFormulaire"].elements["titre"].value = titre[1].firstChild.nodeValue;
      document.forms["NomFormulaire"].elements["commentaire"].value = comm[1].firstChild.nodeValue;
     
    }
    Laquelle fonction est appelée via un lien :
    <a href="#" onclick="champs()";>Test</a>

    Je vous remercie d'avance de votre aide précieuse !

  2. #2
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 65
    Points
    65
    Par défaut
    Allez hop, une énigme résolue mais des questions restent entières : pourquoi ne puis-je pas appeler la fonction avec <a href="#" onclick="mafonction();">cliquer ici</a> ? En fait voici le code javascript-ajax corrigé :

    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
     
    function loadXML(){
        if (document.implementation && document.implementation.createDocument) {
            // déclaration pour Mozilla et FF
            docXml = document.implementation.createDocument('', '', null);  
        }
        else if (window.ActiveXObject){
            // déclaration pour IE
            docXml = new ActiveXObject("Microsoft.XMLDOM");
        }
        else {
                alert('Votre navigateur ne peut pas exécuter ce script.'); 
        }
        docXml.load("test.xml");
    }
     
     
    function biblio() {
        var book = docXml.getElementsByTagName('titre');
        document.forms["tessage"].elements["titre"].value = book[0].firstChild.nodeValue;
     
    }
     
     
    window.onload = function() {
        loadXML();
        lien.onclick = function() { biblio(); }
    }
    Le onclick est chargé au démarrage de la page et là ça marche. Du coup, titre, il a besoin de rien, il s'écrit bêtement comme ça : <input type="text" name="titre"> pis ça suffit.

    Autre truc bête pour les débutants-tete-en-l'air comme moi : faut pas avoir deux fois window.onload dans la page, y'a des scripts, ben ils aiment pas ça du tout (celui-ci par exemple !).

    Si qqn peut m'éclairer sur le pourquoi du comment du onclick, ce serait zentil tout plein !

    Yipi je commence à comprendre, je suis contente !

    A plus tout le monde !

  3. #3
    Membre averti Avatar de jmulans
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 397
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par Maryy
    Allez hop, une énigme résolue mais des questions restent entières : pourquoi ne puis-je pas appeler la fonction avec <a href="#" onclick="mafonction();">cliquer ici</a> ?
    moi je mettrais plutot <span onclick="mafonction();">cliquer ici</span>
    peut etre en l'habillant avec du css apres...
    J'mangerais plus jamais de chili... OUH !!!! DU CHILI !!!!

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Maryy Voir le message
    Allez hop, une énigme résolue mais des questions restent entières : pourquoi ne puis-je pas appeler la fonction avec <a href="#" onclick="mafonction();">cliquer ici</a>
    En ce qui concerne l'appel de la fonction je pense que ceci est un peu + propre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:mafonction();">Cliquer ici</a>

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

Discussions similaires

  1. lire fichier xml
    Par Alex35 dans le forum ASP
    Réponses: 5
    Dernier message: 14/02/2007, 12h13
  2. Lire fichier XML
    Par freestyler dans le forum Delphi
    Réponses: 14
    Dernier message: 26/09/2006, 11h56
  3. [XSLT] lire fichier XML
    Par julien14 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 07/07/2006, 12h16
  4. [SimpleXML] lire fichier xml
    Par ecoinfo dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/07/2006, 20h22
  5. Lire fichier XML en java
    Par loop4 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 17/05/2006, 16h46

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