Différences entre navigateurs XML DOM
- Page précédente Parcours des nœuds DOM
- Page suivante Détermination des nœuds DOM
Les navigateurs traitent différemment les nœuds de texte vide dans le DOM XML.
Exemple
Les exemples suivants utilisent les fichiers XML books.xml.
Fonction loadXMLDoc(), située à l'extérieur du JavaScript, est utilisée pour charger les fichiers XML.
- Affichage de la longueur de la liste des nœuds
- Cet exemple affiche la longueur de la liste des nœuds. Le résultat est différent dans IE et d'autres navigateurs.
- Ignorer les espaces vides entre les nœuds
- Dans cet exemple, nous vérifions le nodeType du nœud et ne traitons que les nœuds d'élément.
Différences entre les navigateurs dans l'analyse DOM
Tous les navigateurs modernes supportent la norme W3C DOM.
Cependant, il y a des différences entre les navigateurs. Les différences importantes sont deux :
- Méthodes de chargement de l'XML
- Méthodes de traitement des espaces et des retours chariots
Dans “Analyse XML DOM” Cette section, a déjà expliqué différentes méthodes de chargement de l'XML.
Dans cette section, nous allons expliquer différentes méthodes de traitement des espaces et des retours chariots.
DOM - Espaces et retours chariots
L'XML contient souvent des retours chariots ou des espaces entre les nœuds. C'est un cas fréquent lors de l'utilisation de simples éditeurs (comme le bloc-notes).
Les exemples suivants (édités dans un bloc-notes) contiennent des CR/LF entre chaque ligne et deux espaces avant chaque sous-nœud :
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
Firefox, ainsi que d'autres navigateurs, traitent les espaces blancs vides ou les retours chariots comme des nœuds de texte, tandis que Internet Explorer ne le fait pas ainsi.
Le code suivant montre combien de sous-nœuds possède l'élément racine (books.xml) :
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; document.write("Nombre de sous-nœuds: " + x.length);
Exemple d'explication :
- En utilisant loadXMLDoc() Mettre "books.xml"Charger xmlDoc"
- Obtenez les sous-nœuds de l'élément racine
- Nombre de sous-nœuds affichés
Les résultats dépendent du navigateur utilisé. Firefox affiche 9, tandis que IE affiche 4.
Ignorer les espaces vides entre les nœuds
Pour ignorer les nœuds de texte vides entre les nœuds élémentaires, il faut vérifier le type de nœud. Le type de nœud des éléments est 1 :
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {// ne traiter que les nœuds élémentaires document.write(x[i].nodeName); document.write("<br />"); } }
Exemple d'explication :
- En utilisant loadXMLDoc() Mettre "books.xml"Charger xmlDoc"
- Obtenez les sous-nœuds de l'élément racine
- Vérifiez le type de nœud de chaque sous-nœud. Si le type de nœud est "1", il s'agit d'un nœud élémentaire
- Page précédente Parcours des nœuds DOM
- Page suivante Détermination des nœuds DOM