begin process at 2012 05 30 08:41:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Problème de compatibilité

 > 

XML et interprétation IE/FF


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

XML et interprétation IE/FF

lundi 3 novembre 2008 à 13:59:43 | XML et interprétation IE/FF

yyoupla

Hello à tous,

j'ai un petit souci d'interprétation de code XML en Javascript.
Voici la structure basique de mon xml :
<?xml version="1.0" encoding="iso-8859-1"?>
<root>
<category1>
<item>
<name><![CDATA[name 1]]></name>
<url><![CDATA[http://www.site1.com]]></url>
</item>
<item>
<name><![CDATA[name 2]]></name>
<url><![CDATA[http://www.site2.com]]></url>
</item>
</category1>
<category2>
<item>
<name><![CDATA[name 1]]></name>
<url><![CDATA[http://www.site1.com]]></url>
</item>
<item>
<name><![CDATA[name 2]]></name>
<url><![CDATA[http://www.site2.com]]></url>
</item>
</category2>
</root>

Note: les CDATA sont là parce que mes urls et noms vont contenir des caractères "&", "?", "<", etc.

Lorsque j'essaie d'afficher, l'interprétation des nodes est différent selon IE et FF. Par exemple, ceci, dans mon js :
var doc = xhr.responseXML;//le xml est appelé par XMLHttpRequest

var element = doc.getElementsByTagName('root').item(0);

alert(element.firstChild.nodeName;)

Va bien donner "category1" avec IE, mais firefox m'affiche "#text" !!

Si je supprime tous les sauts de ligne et indentations (tab) dans le code du xml, là les 2 navigateurs affichent bien "category1".

J'ai essayé de passer le fichier XML en UTF-8, ISO... rien à faire...

Là je bute, quelqu'un aurait une idée ?
Merci beaucoup !
lundi 3 novembre 2008 à 14:30:25 | Re : XML et interprétation IE/FF

nicomilville

Membre Club
Réponse acceptée !
Salut,

Firefox interprette les saut de ligne comme du texte donc il créer un noeud text ou plus a chaque saut de ligne ou même a chaque tabulation, a regarder avec inspecteur DOM tout ce que tu peus faire c'est une condition pour firefox avec une boucle pour vérifier que ce ne sont pas des noeud text qu'il te donne !

a++

Si la réponse vous convient, pensez : Réponse acceptée !

lundi 3 novembre 2008 à 14:36:11 | Re : XML et interprétation IE/FF

yyoupla

Mince alors, mais c'est un comportement normal, ça...?
C'est moi ou c'est complètement c*n comme interprétation ?
Tous les sites parsant du XML avec JS font pareil ?

C'est comme si FF interprétait les retours chariot dans le code html comme des balise<br>, non ?

Sinon la solution serait de réduire le XML en supprimant tous les retours chariot et indentations.
Mais bonjour la lisibilité...

lundi 3 novembre 2008 à 14:45:31 | Re : XML et interprétation IE/FF

nicomilville

Membre Club
ouai, mais si tu regarde bien le code html d'un site avec dom inspector, tu vois le nom d'une balise et toujour un ou plusieur noeud text avant le prochain avec ff c'est comme ça et c'est un comportement normal, un de ces jour, qui sais, peut être que je ferai un snippet ou une classe plus complète pour la gestion du xml multinavigateur...

a++

Si la réponse vous convient, pensez : Réponse acceptée !

lundi 3 novembre 2008 à 15:01:43 | Re : XML et interprétation IE/FF

bultez

Membre Club

bonjour,

à priori, à mon humble avis... mettre un n° d'ordre dans une balise
   ne peut que poser des problèmes ! ( insolubles ou presque )
met     <category>    pour tous  déjà.

ensuite si tu veux un machin spécial par category, ajoute
  tu ajoutes une balise
      <category>
          <type> euh n'importe quoi </type>
          <item>....

après, faut voir ce que tu veux faire....

Cordialement

          Bul [mon Site] [M'écrire]         

lundi 3 novembre 2008 à 15:05:11 | Re : XML et interprétation IE/FF

bultez

Membre Club
et il est vrai que IE et FF ( et quid des autres navigateurs !!! )
    se comportent là aussi de manière différente
    en général, ça ne pose pas de problème, si
    on utilise des choses normales ( quand je dis normales,
    c'est en faisant référence à <category1> qui me semble anormal ! )


Bul[mon Site][M'écrire]

lundi 3 novembre 2008 à 15:07:24 | Re : XML et interprétation IE/FF

yyoupla

@bultez : les noeuds ne s'appellent pas vraiment categorie1 et categorie2, c'était pour l'exemple.
Ils ont chacun un nom différent
(en l'ocurrence : applications, sites)
.
lundi 3 novembre 2008 à 15:20:56 | Re : XML et interprétation IE/FF

bultez

Membre Club


>>Ils ont chacun un nom différent
??? c'est encore pire si tu parles de la balise !
( si tu parles d'un contenu, je comprend mieux )

doc.getElementsByTagName('root').item(0);
je ne vois pas à quoi ça peut te servir...

une structure xml doit ( ou alors c'est la porte ouverte à n'importe quoi
et pour l'exploiter : bonjour ! )  être de la forme
<root>
<category>
<item>
<name><![CDATA[name 1]]></name>
<url><![CDATA[http://www.site1.com]]></url>
</item>
<item>
<name><![CDATA[name 2]]></name>
<url><![CDATA[http://www.site2.com]]></url>
</item>
</category>
    
	<category>
<item>
...
</root>

l'utilisation de  doc.getElementsByTagName('root').item(0);  ne rime plus à grand chose


          Bul [mon Site] [M'écrire]         

mardi 4 novembre 2008 à 14:11:04 | Re : XML et interprétation IE/FF

yyoupla

Pour le doc.getElementsByTagName('root').item(0), j'ai en effet remplacé par doc.getElementsByTagName('root')[0].

Sinon, ma structure est plutot comme ça :

<root>
<applications>
<item>
<name><![CDATA[name 1]]></name>
<url><![CDATA[http://www.site1.com]]></url>
</item>
<item>
<name><![CDATA[name 2]]></name>
<url><![CDATA[http://www.site2.com]]></url>
</item>
</applications>

<sites>
<item>
<name><![CDATA[name 3]]></name>
<url><![CDATA[http://www.site3.com]]></url>
</item>
<item>
<name><![CDATA[name 4]]></name>
<url><![CDATA[http://www.site4.com]]></url>
</item>
</sites>
</root>


Le but est de récupérer 2 listes de liens distinctes.
Peut-etre devrais-je faire autrement et utiliser
<category name="applications">... ?

mardi 4 novembre 2008 à 14:35:19 | Re : XML et interprétation IE/FF

bultez

Membre Club
ou ajouter <nom>application</nom>   derrière les <category>

ch'tiot exemple :

<?xml version="1.0" encoding="iso-8859-1"?>
<root>
    <category>
        <item>
            <name><![CDATA[name 1]]></name>
            <url><![CDATA[http://www.site1.com]]></url>
        </item>
        <item>
            <name><![CDATA[name 2]]></name>
            <url><![CDATA[http://www.site2.com]]></url>
        </item>
    </category>
    <category>
        <item>
            <name><![CDATA[name 3]]></name>
            <url><![CDATA[http://www.site3.com]]></url>
        </item>
        <item>
            <name><![CDATA[name 4]]></name>
            <url><![CDATA[http://www.site4.com]]></url>
        </item>
    </category>
</root>



<html>
    <head>
    </head>
        <script type="text/javascript">
            var xmlD;
            function xmlFin()    // Xml chargé
            {    var tmp;
                for  ( var c=0; c<xmlD.getElementsByTagName('category').length;c++ )
                {    for ( var i=0; i<xmlD.getElementsByTagName('category')[c].getElementsByTagName('item').length; i++ )
                    {    tmp=xmlD.getElementsByTagName('category')[c].
                                        getElementsByTagName('item')[i];
                        alert    (     tmp.getElementsByTagName('name')[0].firstChild.nodeValue+" = "+
                                    tmp.getElementsByTagName('url')[0].firstChild.nodeValue
                                );
                    }
                }
               
                // on pourrait faire :

                for  ( var c=0; c<xmlD.getElementsByTagName('name').length;c++ )
                {    alert    (     xmlD.getElementsByTagName('name')[c].firstChild.nodeValue+" = "+
                                xmlD.getElementsByTagName('url')[c].firstChild.nodeValue
                            );
                }
               
               
            }


            // initialisation
            if ( document.implementation && document.implementation.createDocument )
                    {    xmlD = document.implementation.createDocument("", "", null);
                        xmlD.onload = function() {    xmlFin();    }
                    }   
            else     {    xmlD = new ActiveXObject("Microsoft.XMLDOM");   
                        xmlD.onreadystatechange = function ()
                        {    if (xmlD.readyState == 4)    xmlFin(); }
                    }
            xmlD.load("exemple.xml");
        </script>
    </body>
</html>




          Bul [mon Site] [M'écrire]         


1 2

Cette discussion est classée dans : code, ie, xml, ff, interprétation


Répondre à ce message

Sujets en rapport avec ce message

Gestion des popup sous IE et FF [ par CleFac ] Bonjour, j'aimerai savoir s'il est possible d'ouvrir plusieurs popups. laissez l'utilisateur les dimensionner et les positionner ; pour ensuite les ou Problème Popups IE et FF [ par snip74 ] Bonjour all, voila j'ai une page que j'ai créer ou j'ai mis se code: [code=autre]<form action="http://www.tchat-fusion.org/chat/chat.php" method="pos Erreur dans mon code pour afficher une liste d'un fichier XML,HELP!!!!!!!!!!!!!!!!! [ par devchat1987 ] Bonjour, svp,j'arrive pas a faire fonctionner mon code,je veux affiche une liste des noms d'une fichier xml dans un div (dans une liste ordonnée ol). Jquery ne fonctionne plus sous Internet Explorer [ par jonathandaros ] Bonjour, Je ne sais pas vraiment comment expliquer mes ennuis, et franchement ça commence à bien faire ... j'utilise Jquery et le plugin easing pou Tirage aléatoire de données dans fichier xml [ par math11 ] Bonjour, je suis actuellement a la recherche d'un moyen de tirer aléatoirement une donnée dans un fichier xml. Je connais la méthode de JavaScript d doublons dans xml [ par math11 ] Bonjour, J'aurais voulu savoir s'il y avait la possibilité en "JQery" de n'afficher qu'une seule fois un élément, afin de générer un menu sur l'éléme [XML/SVG] zoom sur plusieurs éléments [ par BARIS69330 ] Bonjour, je bosse actuellement sur du svg et il me faut faire un zoom sur plusieurs evenements quand je passe la souris dessus grâce aux fonctions onm Code Javascript qui fonctionne sous FF 3.0.5 mais plus sous 3.5.5 ... [ par meluesine ] Bonjour à tous, J'ai un souci dont je n'ai pas trouvé la solution, ni en cherchant sur le web en général ni en cherchant sur ce forum: j'ai installé prob de lecture appartie d'un fichir xml [ par abir01 ] voila mon code XML: [code=xml] Current Conditions: Fair, 54 F Forecast: Tue - Mostly Sunny. High: 78 Low: 51 Récupération d'un ID sous IE [ par bull955 ] Bonjour, J'écris une procédure permettant de générer une zone répétée dans une iframe, avec visualisation et suppression par article ajouté. Tout fo


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,669 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales