Partage
  • Partager sur Facebook
  • Partager sur Twitter

xml provenant d'ajax

Sujet résolu
    7 juillet 2010 à 14:10:55

    Bonjour j'ai du xml provenant d'ajax et mon xml est bien formé. Le soucis est que j'ai une balise qui peu être vide de temps en temps et lorsqu'elle est vide(pas de données), elle fait planté mon code sur cette instruction
    var description=itemsDescription.item(0).firstChild.data;
    
    ce que j'ai fait c'est de tester si la modalité est vide avec un
    if(description==""){mon traitement}
    
    mais ça ne marche pas, le test dans le if n'est jamais fait, j'ai même fait un test avec null. Voici mune partie du code
    var itemsDescription = docXML.getElementsByTagName("descriptionSerie");
    	 var description=itemsDescription.item(0).firstChild.data;
    	 if(itemsDescription.item(0).firstChild.data==null){alert("toto");}
    
    • Partager sur Facebook
    • Partager sur Twitter
      8 juillet 2010 à 9:50:26

      Bonjour,

      if ( itemsModalite.item(0).length > 0 ) { mon traitement }
      ou
      if ( itemsModalite.item(0).firstChild.length > 0 ) { mon traitement }
      


      David
      • Partager sur Facebook
      • Partager sur Twitter
        8 juillet 2010 à 10:13:39

        alert(itemsDescription.item(0).length)
        
        affiche undifined et
        alert(itemsDescription.item(0).firstChild.length )
        
        fait planter le code. Je joind le xml généré
        <?xml version="1.0" encoding="utf-8"?>
        <serie>
          <code_serie>18</code_serie>
          <serieInstanceUID>1.2.826.0.1.3680043.2.406.1.3.305860632.4780.1271941557.6</serieInstanceUID>
          <studyInstanceUID>1.2.826.0.1.3680043.2.406.1.2.211008914.16616.1194855120.244</studyInstanceUID>
          <descriptionSerie></descriptionSerie>
          <modaliteSerie>KO</modaliteSerie>
          <nbImageSerie>1</nbImageSerie>
          <image>1.2.826.0.1.3680043.2.406.1.4.305860632.4780.1271941557.4</image>
          <rows>0</rows>
          <columns>0</columns>
        </serie>
        
        • Partager sur Facebook
        • Partager sur Twitter
          8 juillet 2010 à 10:38:52

          essaie ça

          var description = itemsDescription.item(0).childNodes.length && // enfants présents ?
          		  itemsDescription.item(0).firstChild.data; // si oui, on récupère les données
          		  // sinon, description vaut false
          
          if(description) {
          // do things
          }
          
          • Partager sur Facebook
          • Partager sur Twitter
            8 juillet 2010 à 12:18:10

            Merci Darkodam ça marche par contre si tu peux juste m'expliquer pourquoi tu utilises
            &&
            
            dans l'instruction
            var description = itemsDescription.item(0).childNodes.length && // enfants présents ?
            		  itemsDescription.item(0).firstChild.data;
            
            • Partager sur Facebook
            • Partager sur Twitter
              8 juillet 2010 à 13:14:25

              La variable description c'est la condition du if, donc il faut que les 2 conditions, expliquées par Darkodam dans les commentaires, soient remplis pour effectuer ton traitement. D'ou le && (condition AND)
              • Partager sur Facebook
              • Partager sur Twitter
                8 juillet 2010 à 13:20:58

                si itemsDescription.item(0).childNodes.length équivaut à true, alors description vaudra itemsDescription.item(0).firstChild.data .

                C'est l'équivalent de
                var description = false;
                if( itemsDescription.item(0).childNodes.length ) {
                	description = itemsDescription.item(0).firstChild.data;
                }
                
                • Partager sur Facebook
                • Partager sur Twitter
                  8 juillet 2010 à 13:38:19

                  Autant pour moi, c'est "un ET logique" en fait?

                  Genre (true && var) = var, (false && var) = false. J'avais jamais pense a faire ca en dehors du C, c'est nice ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 juillet 2010 à 13:41:08

                    Citation : miclebowski

                    Autant pour moi, c'est "un ET logique" en fait?

                    Genre (true && var) = var, (false && var) = false. J'avais jamais pense a faire ca en dehors du C, c'est nice ;)



                    exactement. Et j'imagine qu'on peut faire la même chose dans tout les langages =)
                    • Partager sur Facebook
                    • Partager sur Twitter

                    xml provenant d'ajax

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown