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 :

Une erreur sur book[12].firstChild.nodeValue is null ?


Sujet :

JavaScript

  1. #1
    Inactif
    Inscrit en
    Juin 2008
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 304
    Points : 96
    Points
    96
    Par défaut Une erreur sur book[12].firstChild.nodeValue is null ?
    Bonjour,

    Je veux récupères le contenu des balise<param> </param> dans un fichier XML jusque la c’est bon
    Voila que il y a quelque balise <param> </param> qui n’on pas de contenu Alors elle est du gore <param/> j’ai toujours un problème avec en volent le contourner avec un simple if ça marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(book[i].firstChild.nodeValue != undefined)		
    document.write("param["+i+"]: "+book[i].firstChild.nodeValue +"<br/>")
     
    ou:
     
    if(book[12].firstChild.nodeValue != null) document.write (book[12].firstChild.nodeValue);
    Le code stop net c’est normale c’est une erreur même avec les conditions.

    Si quelqu’un peu aider il sera le bienvenu.
    Merci d’avance.

  2. #2
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Salut,

    hasChildNodes?

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(book[i].firstChild.nodeValue.length)
    A+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Bonsoir,

    Tu ne peux pas tester la valeur d'un noeud qui n'existe pas (ici firstChild), donc c'est le noeud que tu dois tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(book[i].firstChild != null)
    La solution de franculo_caoulene marche aussi très bien

  5. #5
    Inactif
    Inscrit en
    Juin 2008
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 304
    Points : 96
    Points
    96
    Par défaut
    Oui, merci

    Mais moi dans le fichier XML que J’analyse il y’a des balise qui son avec contenu les autre existe sous une autre forme comme les <br/>
    EX : <param> contenu </param> --> balise avec contenu
    <param/> --> sans contenu

    Je pence que c’est sa qui cause des problèmes.
    Comment vérifié que sa n’a pas de contenu ?

  6. #6
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Citation Envoyé par franculo_caoulene Voir le message

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par bilred Voir le message
    Voila que il y a quelque balise <param> </param> qui n’on pas de contenu
    En fait, c'est surtout que dans ce cas elles sont mal formatées (</param> seul), non ?

    A+

  8. #8
    Inactif
    Inscrit en
    Juin 2008
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 304
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    En fait, c'est surtout que dans ce cas elles sont mal formatées (</param> seul), non ?
    Non elle son comme les balise <br/> elle n’on pas de contenu donc pas de balise fermente.

    Je vais teste avec hasChildNodes() et donne des nouvel.

    merci.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    générant mon xml moi-même dynamiquement, il est vrai que quand j'écris une balise <truc></truc> qui n'a pas de contenu, le navigateur l'interprète comme ça <truc/> alors que si j'ouvre le fichier en mode texte j'ai bien mes 2 balises, balise qui ne sont alors pas reconnue par mon script qui parse le XML... (ça me pond des erreurs à chaque fois vu que j'ai plus le même nombre de child partout)

    j'ai réglé ce soucis directement au niveau de mon script qui gère l'écriture dynamique de mon XML en mettant NC au lieu de rien dans les balides <truc></truc> ou toute autre balise qui ne peuvent être remplie...

    je ne sais pas si c'est la meilleure solution mais au moins je n'ai plus de soucis pour parser mon xml...

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Je crois que <truc/> est parfaitement équivalent à <truc></truc>, c'est juste une réécriture pour simplifier, mais ça ne change rien du tout à l'arbre DOM du document XML.

    ça me pond des erreurs à chaque fois vu que j'ai plus le même nombre de child partout
    Je ne suis pas sûr d'avoir bien compris ta phrase, mais je ne vois en quoi ça change le nombre de child
    <truc></truc> correspond à un seul noeud qui n'a pas de fils (dans l'API DOM), donc c'est la même chose pour <truc/>...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    en gros...

    dans mon fichier xml j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <main>
        <patate>
            <much>betrave</much>
            <truc>tatave</truc>
            <bidule>goyave</bidule>
        </patate>
        <patate>
            <much>gipsy</much>
            <truc></truc>
            <bidule>king</bidule>
        </patate>
    </main>
    les navigateurs l'interprète comme ça...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <main>
        <patate>
            <much>betrave</much>
            <truc>tatave</truc>
            <bidule>goyave</bidule>
        </patate>
        <patate>
            <much>gipsy</much>
            <truc/>
            <bidule>king</bidule>
        </patate>
    </main>
    donc quand je parse tout ça, il plante sur le <truc/>... en me disant qu'il existe pas pour la deuxième patate...

    code de mon parser...
    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
     
            if(is_ie) {
    		for(var i=0; i<main.childNodes.length; i++) {
    			var obj=new Object();
    			var parentItem = main.childNodes.item(i);
    			for(var j=0; j<parentItem.childNodes.length; j++) {
    				var childItem = parentItem.childNodes.item(j);
    				obj[childItem.tagName] = childItem.firstChild.nodeValue;
    			}
    			results[i] = obj;
    		}
    	}
    	else if(is_fx) {
                    var k=1;
    		for(var i=1; i<main.childNodes.length; i=i+2) {
    			var obj=new Object();
    			var parentItem = main.childNodes.item(i);
    			for(var j=1; j<parentItem.childNodes.length; j=j+2) {
    				var childItem = parentItem.childNodes.item(j);
    				obj[childItem.tagName] = childItem.firstChild.nodeValue;
    			}
    			results[i-k] = obj;
    			k++;
    		}
    	}

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    ok... bon je viens de piger mon erreur... j'oublie de test le firstChild avant de recupérer le nodeValue

    bon bah tout marche...

Discussions similaires

  1. Application d'une erreur sur une combo
    Par Chicard dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/02/2009, 19h13
  2. Une erreur sur mon code
    Par gantix dans le forum Langage
    Réponses: 2
    Dernier message: 23/01/2009, 14h06
  3. capturer une erreur sur un import
    Par cysboy dans le forum Langage
    Réponses: 2
    Dernier message: 09/10/2007, 12h17
  4. Réponses: 2
    Dernier message: 09/10/2006, 10h06
  5. Une erreur sur le free.. Oui mais pourquoi ?
    Par MonsieurAk dans le forum C
    Réponses: 7
    Dernier message: 22/12/2005, 20h51

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