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 :

Lecture fichier xml, transfert données vers widget


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Lecture fichier xml, transfert données vers widget
    Bonjour la communauté !!
    Je viens vers vous pour un problème que j'ai trouvé plusieurs fois sur internet mais je n'arrive pas à adapter à mon utilisation...

    Je créé un widget qui rescence pas mal d'informations. Pour faire cours je stoque des données dans un fichier xml qui ressemble à ça:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="utf-8" ?>
    <Production>
    <HeureReleve>2017,1,24,10,30,49</HeureReleve>
    <Indice>2</Indice>
          <tag1>56</tag1>
          <tag2>62</tag2>
          <tag3>56</tag3>
          <tag4>61</tag4>
          <tag5>56</tag5>
          <tag6>62</tag6>
    Ensuite, les problèmes arrivent...Je veux insérer les valeurs des différents tag sur un widget mais ça ne marche pas...Je ne sais pas si c'est la scrutation du fichier xml qui bloque ou bien l'envoie des données vers le widget. Si vous pouvez m'aider merci d'avance !! =)
    Voici la partie du code qui récupère les données du fichier ci-dessus:
    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
    function loadXML()
    {
        //chargement du fichier XML pour Internet Explorer
        if (window.ActiveXObject) {
            var valeurTR = new ActiveXObject('Microsoft.XMLDOM');
            // mode synchrone obligatoire pour obtenir l'ensemble de la réponse
            valeurTR.async = false;
            //chargement du fichier xml en question, attention à bien rajouter le chemin référence du fichier xml
            valeurTR.load("C:\TEMP\ValeurTR.xml");
            getmessage() 
            else
            {
                alert('Le script n\'est pas compatbile avec votre navigateur');
            }
        }
    }
    /* cette fonction affiche le contenu de la balise xml sélectionnée */
    function getmessage()
    {
        // pour que la fonction soit relancée régulièrement, récursivité avec la fonction setTimeout
        setTimeout('getmessage()', 300000);
        try {
            loadXML()
            valeurTR.getElementById('tag1').innerHTML = valeurTR.getElementsByTagName('tag1') [0].firstChild.nodeValue;
            valeurTR.getElementById('tag2').innerHTML = valeurTR.getElementsByTagName('tag2') [0].firstChild.nodeValue;
            valeurTR.getElementById('tag3').innerHTML = valeurTR.getElementsByTagName('tag3') [0].firstChild.nodeValue;
            valeurTR.getElementById('tag4').innerHTML = valeurTR.getElementsByTagName('tag4') [0].firstChild.nodeValue;
            //Utilisation de innerHTML pour la mise en place automatique de balises HTML
            document.getElementById('TR1').innerHTML = tag1;
            document.getElementById('TR2').innerHTML = tag2;
            document.getElementById('TR3').innerHTML = tag3;
            document.getElementById('TR4').innerHTML = tag4;

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 957
    Points : 44 121
    Points
    44 121
    Par défaut
    Bonjour,
    surprenant ce que tu cherches à faire et qui n'est d'ailleurs exécutable que sous oldIE !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function loadXML()
    {
        //chargement du fichier XML pour Internet Explorer
        if (window.ActiveXObject) {
        }
    }
    de plus ta fonction loadXML appelle la fonction getMessage et inversement.

    De nos jours il te suffit de faire un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var oXhr = new XMLHttpRequest();

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Rep
    Bonjour,
    Merci beaucoup pour ta réponse !!! Par contre je ne comprends pas trop comment avec une seule ligne tu charges me fichier xml sans mettre sont chemin d'accès
    Merci d'avance !!

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 957
    Points : 44 121
    Points
    44 121
    Par défaut
    Par contre je ne comprends pas trop comment avec une seule ligne tu charges me fichier xml sans mettre sont chemin d'accès
    il ne s'agit ici que de récupérer un objet XMLHttpRequest et qui ne te dispenses pas du code qui va avec.

    Quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var oXhr = new XMLHttpRequest();
    oXhr.onreadystatechange = function () {
        if (this.readyState === 4 && this.status === 200) {
            // ici on utilise la réponse
        }
    };
    oXhr.open('GET', 'nom_fichier.xml', true);
    oXhr.send();

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Ah ok !!! J'avais trouvé ça et j'avais testé (bon pas forcément de la bonne façon) mais ça ne marchait pas :/ Je vais réessayer =) Par contre mon soucis c'est que mon programme ne connait pas la méthode XMLHttp...c'est peut-être pour ça que ça ne marchait pas.. ?

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Bon !!! Et bien ça ne marche pas....
    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
    function loadXML()
    {
    	var valeurTR = new XMLHttpRequest();
     
    	valeurTR.open("GET", "valeurTR.xml", true);
    	valeurTR.send();
     
    	valeurTR.onreadystatechange = fonction()
    	{
    		if (valeurTR.readyState == 4 && (valeurTR.status == 200 || valeurTR.status == 0))
    		{
    			contenu = valeurTR.responseXML;
    			document.getElementById("valtr1").innerHTML = contenu.getElementsByTagName("tag1").firstChild.nodeValue;
    		}
    	}
    }
    Je sais plus comment faire j'ai essayé tout ce que je pouvais mais là je bloque....(bon en même temps je suis carément novice dans ce langage ^^)

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 957
    Points : 44 121
    Points
    44 121
    Par défaut
    Par contre mon soucis c'est que mon programme ne connait pas la méthode XMLHttp...
    quel navigateur/version utilises tu ?

    Essaie de définir ta fonction onreadystatechange avant l'appel à send(null).

    Regarde ce que tu obtiens en retour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var oXhr = new XMLHttpRequest();
    oXhr.onreadystatechange = function () {
        if (this.readyState === 4 && this.status === 200) {
            console.log( this.responseText);
            console.log( this.responseXML);
        }
    };
    oXhr.open('GET', 'nom_fichier.xml', true);
    oXhr.send()
    ;

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Je n'obtiens rien :/ Je pense qu'il est cependant difficile pour toi de m'aider sans le projet complet. Je te mes un lien pour que tu puisses modifier directement dans le projet.
    Tu trouveras 1 fichier .js où je tente de récupérer mes valeurs et un fichier ValeurTR.xml qui contient mes valeurs.
    Hop !! Voici le lien. Je rappel donc que je construis un Widget. Une fois unzipp, tu aurais un exemplaire du widget pour que tu vois ce que je fais.
    https://mon-partage.fr/f/4cxneZtc/

    Le but :
    Devant Tr1 : (sur le widget), je veux afficher la valeur du tag1 compris dans le ValeurTR.xml.
    Tu trouveras dans le .js la fonction loadXML que tu peux changer à ta guise elle ne sert à rien et surtout ne fonctionne pas... ^^

    J'utilise explorer version 9.

    Merci d'avance.

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 957
    Points : 44 121
    Points
    44 121
    Par défaut
    J'utilise explorer version 9.


    essaie d'initialiser de la sorte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var oXhr = window['XMLHttpRequest'] ? new XMLHttpRequest() :new ActiveXObject("Microsoft.XMLHTTP");
    ou vérifie dans les options internet -> onglet Avancé que la prise en charge native de XMLHTTP est coché.

    Cela dit responseXML n'est pas pris en charge par IE9 me semble t-il !

Discussions similaires

  1. lecture fichier XML
    Par bhahmed dans le forum C++Builder
    Réponses: 5
    Dernier message: 18/09/2006, 08h40
  2. [C#-XML] - Problème de lecture fichier XML
    Par Gloups dans le forum Windows Forms
    Réponses: 9
    Dernier message: 08/08/2006, 00h40
  3. Lecture fichier xml aux caracteres accentués
    Par LFC dans le forum Modules
    Réponses: 2
    Dernier message: 13/02/2006, 19h45
  4. Réponses: 3
    Dernier message: 09/12/2005, 17h42
  5. [SAX] Problème lecture fichier xml
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 07/07/2005, 18h11

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