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 :

[DOM] noeud vide sous firefox


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut [DOM] noeud vide sous firefox
    Salut a tous , j'essaye de récupèrer l'arborescence d'un noeud xml via le dom, mais je me confronte a un problème , firefox plante sur un :

    x.nextSibling , si x = un noeud = a '\n '

    le code 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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
      var xmlDoc = "";
        function importXML()
        {
            if (document.implementation && document.implementation.createDocument)
            {
                    xmlDoc = document.implementation.createDocument("", "", null);
                    xmlDoc.async=false;
                    xmlDoc.load("gabarit.xml");
            }
            else if (window.ActiveXObject)
            {
             xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
               xmlDoc.async=false;
               xmlDoc.load("gabarit.xml");
               if (xmlDoc.parseError.errorCode != 0)
                          alert("Error loading XML file : " + xmlDoc.parseError.reason);
                    else{}
                          //alert (xmlDoc.xml);
            }
            else
            {
                    alert('Your browser can\'t handle this script');
                    return;
            }
          getVersion();
        }
     
        function getVersion(){
           arborescence(xmlDoc.getElementsByTagName('galeries')[0]);
        }
     
        function arborescence(noeudCourant){
              x = noeudCourant ;
     
                var temp ="";
                while(x){
                  if(x.nodeType == 1){
                    temp += "Nom : " + x.nodeName+"<br />";
                  }
                  try{
                    if(x.firstChild.nodeType == 1){
                      x = x.firstChild;
                    }
                    else if(x.firstChild.nextSibling != null){
                      x = x.firstChild.nextSibling;
                    }
                    else
                    {
                        x = x.nextSibling;
                    }
                  }
                  catch(e){
                    alert("error");
                  }
     
                }
                document.getElementById('final').innerHTML =  temp;
        }
    le fichier xml :
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <galeries>
      <galerie>
        <id>1</id>
        <description>
          <titre>première galerie</titre>
          <auteur>moi</auteur>
          <dateCreation>26/10/2007</dateCreation>
          <theme>animaux</theme>
        </description>
        <images>
          <image>
            <id>1</id>
            <link>blabla</link>
            <description>de l'image</description>
            <taille h="120" w="150" />
            <poid>200ko</poid>
          </image>
          <image>
            <id>2</id>
            <link>blabla</link>
            <description>de l'image</description>
            <taille h="120" w="150" />
            <poid>200ko</poid>
          </image>
        </images>
      </galerie>
    </galeries>

    Code html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        <form>
          <input type="button" name="test" value="click" onclick="importXML()" />
        </form>
        <div id="final"></div>
    sous ie aucun souçis ....
    je débug depuis une heure sous firebug et je ne trouve pas de solution ...

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    fasi une recherche sur ce forum avec 'node cleaner'
    FFX et IE ne comptent pas les noeuds de la même façon ...

    le pourquoi:
    http://javascript.developpez.com/faq...M#DOMIEFirefox

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Ok, j'y pensais a supprimer les noeud vide , mais question quand même :

    pourquoi .nextSibling plante ????

    alors que si je regarde dans firebug , x.nextSibling , est bien égale a mon noeud souivant

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    bon sans avoir eu de réponse a ma question concernant nextSibling sur un noeud vide , voici la solution pour parcourir une arborescence XML :

    une fonction récursive qui s'appel a chaque fois qu'elle trouve un enfant

    items est basé sur un premier noeud ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        function tagName(items){
          var temp = '';
          items = items.childNodes;
          for(var i = 0; i < items.length ; i++){
              if(items[i].nodeType != 1) continue;
              temp += items[i].nodeName + '\n' ;
              temp += tagName(items[i]);
          }
          return temp;
        }

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

Discussions similaires

  1. [AJAX] ResponseText toujours vide sous Firefox
    Par izakiel dans le forum AJAX
    Réponses: 4
    Dernier message: 15/07/2009, 01h33
  2. [CKEditor] Code inutile (et gênant) généré lorsque le texte est vide sous Firefox
    Par Hervé Saladin dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 05/05/2008, 12h02
  3. [Cookies] $_COOKIE vide sous Firefox
    Par Marty000 dans le forum Langage
    Réponses: 2
    Dernier message: 13/01/2008, 17h24
  4. [DOM] pb execution innerHTML sous firefox
    Par durthu dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/09/2007, 11h55
  5. [DOM] popup modification de src sous Firefox
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 24
    Dernier message: 24/06/2007, 21h19

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