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 :

Récupérer les informations d'un fichier XML


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chef de Projet Informatique (Sécurité & Réseaux)
    Inscrit en
    Juin 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de Projet Informatique (Sécurité & Réseaux)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2018
    Messages : 26
    Par défaut Récupérer les informations d'un fichier XML
    Bonjour à tous,

    Je souhaite récupérer les informations d'un document XML à l'aide d'un script (DOM), mon code me retourne l'erreur "xmlhttp is not defined".
    Je ne suis pas programmeur à la base et il se peut que mon erreur soit une erreur de débutant. Je bloque depuis quelques jours dessus, essaye des choses trouvées sur le web mais ne trouve pas de solution.

    Voici mon fichier XML:
    Bra.xml
    Code xml : 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
    <?xml version='1.0' ?>
    <EL>    
         <BRANCHES>
              <BRA ID = "BRA0001">
                   <SEGMENT>BNS0088</SEGMENT>
                   <SEGMENT>BNS0090</SEGMENT>
                   <SEGEXT>DER0001</SEGEXT>
                   <SEGEXT>EXT0038</SEGEXT>
                   <ASROUTEBR>11M</ASROUTEBR>
                   <ENVIRONMENTS>
                        <ENVIRONMENTTYPE>PRESSURISED</ENVIRONMENTTYPE>
                   </ENVIRONMENTS>
                   <ROUTECODE>11M</ROUTECODE>
                   <LENGTH>784.006</LENGTH>
                   <DIAMETER>6.0</DIAMETER>
                   <BENDRADIUS>18.0</BENDRADIUS>
                   <BRA_GEOM>
                        <INFO3D_COORD>
                             <Point X = "12856.940" Y = "-2809.882" Z = "-116.364"/>
                             <Vector X = "-0.17955" Y = "-0.69185" Z = "0.69936"/>
                        </INFO3D_COORD>
                        <INFO3D_COORD>
                             <Point X = "12840.315" Y = "-2851.720" Z = "-55.351"/>
                             <Vector X = "-0.28422" Y = "-0.14765" Z = "0.94732"/>
                        </INFO3D_COORD>
                        <INFO3D_COORD>
                             <Point X = "12836.622" Y = "-2853.641" Z = "-43.036"/>
                             <Vector X = "-0.28383" Y = "-0.14802" Z = "0.94738"/>
                        </INFO3D_COORD>
                        <INFO3D_COORD>
                             <Point X = "12882.119" Y = "-2894.158" Z = "121.646"/>
                             <Vector X = "1.00000" Y = "0.00002" Z = "-0.00003"/>
                        </INFO3D_COORD>
                        <MIDDLE_POINT>
                             <Point X = "12967.780" Y = "-2886.374" Z = "83.137"/>
                        </MIDDLE_POINT>
                   </BRA_GEOM>
              </BRA>
         </BRANCHES>
    </EL>

    Et voici mon code js:
    Bra.js
    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
    var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          myFunction(this);
        }
    };
    xmlhttp.open("GET", "Bra.xml", true);
    xmlhttp.send();
     
    function myFunction(xml) {
        var x, y, i, xmlDoc, txt;
        xmlDoc = xml.responseXML;
        txt = "";
        x = xmlDoc.documentElement;
        y = xmlDoc.documentElement.childNodes;
        for(i = 0; i < y.length; i++) {
            if (y[i].nodeType != 3 && y[i].nodeType != 9) {
                txt += "Nodename: " + y[i].nodeName +
                " (value: " + y[i].childNodes[0].nodeValue + ")<br>";
            }
            for(z = 0; z < y[i].childNodes.length; z++) {
                if (y[i].childNodes[z].nodeType != 3) {
                    txt += "Nodename: " + y[i].childNodes[z].nodeName +
                    " (value: " + y[i].childNodes[z].childNodes[0].nodeValue + ")<br>";
                }
            }
        }
        document.getElementById("Bra").innerHTML = 
        "Nodename: " + xmlDoc.nodeName +
        " (value: " + xmlDoc.childNodes[0].nodeValue + ")<br>" +
        "Nodename: " + x.nodeName + 
        " (value: " + x.childNodes[0].nodeValue + ")<br>" +
        txt;
    }
    Merci d'avance pour vos réponses.
    Cordialement

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    (...)mon code me retourne l'erreur "xmlhttp is not defined".
    avec le code que tu nous montres tu ne devrais pas avoir cette erreur, sauf si tu utilises un « very old navigateur » !?!

  3. #3
    Membre averti
    Homme Profil pro
    Chef de Projet Informatique (Sécurité & Réseaux)
    Inscrit en
    Juin 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de Projet Informatique (Sécurité & Réseaux)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2018
    Messages : 26
    Par défaut
    Bonjour,
    Après de longues recherches essais et autres je pense avoir déterminé la source de mon problème.

    Merci pour ta réponse, cela aurait pu être en effet une cause mais à priori c'est tout autre.
    (...)mon code me retourne l'erreur "xmlhttp is not defined".
    avec le code que tu nous montres tu ne devrais pas avoir cette erreur, sauf si tu utilises un « very old navigateur » !?!
    Pour te répondre, non j'utilise la dernière version de chrome mais le problème ne vient pas du navigateur de ce que j'ai pu comprendre. (Pour la blague je dirais même qu'il se situe entre la chaise et le clavier).

    Ce que j'essaie de faire c'est de récupérer les données d'une ressource en local alors que la fonction "xmlhttp" ne permet pas ça, il va donc falloir que je trouve une autre fonction pour lire un fichier local.
    Ais-je bien compris ou cela vient d'un autre problème?
    Si ce problème est bien lié à ça, pensez-vous que je suisse continuer à utiliser le reste de mon script ou dois-je chercherune autre façon de le faire pour intervenir sur mes ressources en local?

    EDIT:

    Je viens de créer un fichier html pour essayer de régler mon problème, celui-ci aussi est en local.
    Lorsque je le lance j'ai ma page qui s'ouvre mais malheureusement qui reste totalement blanche. Est-ce lié à mon problème précédent ou une erreur de code?

    fichier html:
    Code HTML : 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
    <!DOCTYPE html>
    <html>
    <body>
        <p id="Bra"></p>
     
        <script>
            function loadXMLDoc() {
                var xmlhttp = new XMLHttpRequest();
                xmlhttp.onreadystatechange = function() {
                    if (this.readyState == 4 && this.status == 200) {
                    myFunction(this);
                    }
                };
            xmlhttp.open("GET", "Bra.xml", true);
            xmlhttp.send();
            }
            function myFunction(xml) {
                var x, y, i, xmlDoc, txt;
                xmlDoc = xml.responseXML;
                txt = "";
                x = xmlDoc.documentElement;
                y = xmlDoc.documentElement.childNodes;
                for(i = 0; i < y.length; i++) {
                    if (y[i].nodeType != 3 && y[i].nodeType != 9) {
                        txt += "Nodename: " + y[i].nodeName +
                        " (value: " + y[i].childNodes[0].nodeValue + ")<br>";
                    }
                    for(z = 0; z < y[i].childNodes.length; z++) {
                        if (y[i].childNodes[z].nodeType != 3) {
                            txt += "Nodename: " + y[i].childNodes[z].nodeName +
                            " (value: " + y[i].childNodes[z].childNodes[0].nodeValue + ")<br>";
                        }
                    }
                }
                document.getElementById("Bra").innerHTML = 
                "Nodename: " + xmlDoc.nodeName +
                " (value: " + xmlDoc.childNodes[0].nodeValue + ")<br>" +
                "Nodename: " + x.nodeName + 
                " (value: " + x.childNodes[0].nodeValue + ")<br>" +
                txt;
            }
        </script>
    </body>
    </html>

    voici le résultat:
    Nom : résult.png
Affichages : 2290
Taille : 10,3 Ko

    Merci

  4. #4
    Membre averti
    Homme Profil pro
    Chef de Projet Informatique (Sécurité & Réseaux)
    Inscrit en
    Juin 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de Projet Informatique (Sécurité & Réseaux)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2018
    Messages : 26
    Par défaut
    Je viens de repenser ma solution, comme je n'avais pas pris en compte le fait que javascript a besoin d'un serveur pour récupérer les fichiers, infos etc...
    Je compte mettre en place un serveur, pensez-vous que ça pourrait me permettre de régler mes problèmes?

    Merci d'avance

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Je compte mettre en place un serveur, pensez-vous que ça pourrait me permettre de régler mes problèmes?
    vaec un serveur local pas de soucis, tu peux également soit tester sur un navigateur qui supporte/accepte cela soit encore lancer Chrome avec comme paramètre --allow-file-access-from-files.

  6. #6
    Membre averti
    Homme Profil pro
    Chef de Projet Informatique (Sécurité & Réseaux)
    Inscrit en
    Juin 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de Projet Informatique (Sécurité & Réseaux)
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2018
    Messages : 26
    Par défaut
    (...) tu peux également soit tester sur un navigateur qui supporte/accepte cela soit encore lancer Chrome avec comme paramètre --allow-file-access-from-files.
    Merci pour ta réponse, j'ai pu faire un pas en avant sans avoir à créer de serveur, maintenant j'ai une page totalement blanche qui s'ouvre donc à priori cela viendrait d'une erreur dans mon code, si quelqu'un a une idée? Je vais continuer de chercher de mon côté aussi bien entendu.

    Merci à tous

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/02/2008, 17h21
  2. [XSLT] Problème de génération de code javascript (inclure) via XSLT
    Par fragmonster dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 23/04/2007, 14h49
  3. Réponses: 16
    Dernier message: 18/10/2006, 22h52
  4. Problème de paramètres dans mon code javascript
    Par cocacollection dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/03/2006, 10h53
  5. problème de code javascript pour une vue 360°
    Par tomguiss dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2006, 22h50

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