Analyse XML DOM
- Page précédente Arbre de nœuds DOM
- Page suivante Chargement DOM
La plupart des navigateurs intègrent des analyseurs XML pour lire et manipuler XML.
L'analyseur convertit XML en objet accessible par JavaScript.
Exemple
Les exemples fournis par CodeW3C.com sont indépendants des navigateurs et des plateformes. Ces exemples peuvent être exécutés dans tous les navigateurs modernes.
Analyser XML
Tous les navigateurs modernes intègrent un analyseur XML pour lire et manipuler XML.
L'analyseur lit XML en mémoire et le convertit en objet DOM XML accessible par JavaScript.
L'analyseur XML Microsoft diffère des autres analyseurs dans les navigateurs. L'analyseur Microsoft prend en charge le chargement de fichiers XML et de chaînes de caractères XML (texte), tandis que d'autres navigateurs utilisent des analyseurs séparés. Cependant, tous les analyseurs contiennent des fonctions pour parcourir l'arbre XML, accéder, insérer et supprimer des nœuds.
Dans ce tutoriel, nous vous expliquerons comment créer des scripts exécutables dans IE et d'autres navigateurs.
Charger XML via l'analyseur XML Microsoft
L'analyseur XML Microsoft est intégré dans Internet Explorer 5 et les versions supérieures.
Le fragment JavaScript suivant charge le document XML ("books.xml) Chargeur d'analyseur :
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.load("books.xml");
Explication du code :
- La première ligne crée un objet document XML Microsoft vide
- La deuxième ligne ferme le chargement asynchrone, ce qui assure que l'analyseur ne continuera pas à exécuter le script avant que le document ne soit complètement chargé
- La troisième ligne informe l'analyseur de charger le document nommé "books.xml"
Le fragment JavaScript suivant charge la chaîne nommée txt dans l'analyseur :
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt);
Remarque :loadXML() La méthode est utilisée pour charger une chaîne de caractères (texte), tandis que load() Utilisé pour charger un fichier.
Analyseur XML dans Firefox et d'autres navigateurs
Le fragment JavaScript suivant charge le document XML ("books.xml) Chargeur d'analyseur :
xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async="false"; xmlDoc.load("books.xml");
Explication du code :
- La première ligne crée un objet document XML vide
- La deuxième ligne ferme le chargement asynchrone, ce qui assure que l'analyseur ne continuera pas à exécuter le script avant que le document ne soit complètement chargé
- La troisième ligne informe l'analyseur de charger le document nommé "books.xml"
Le fragment JavaScript suivant charge la chaîne nommée txt dans l'analyseur :
parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml");
Explication du code :
- La première ligne crée un objet document XML vide
- La deuxième ligne informe l'analyseur de charger la chaîne nommée txt
Remarque :Internet Explorer utilise loadXML() méthode pour analyser une chaîne XML, tandis que d'autres navigateurs utilisent DOMParser objet.
Analyser un fichier XML - Un exemple cross-browser
L'exemple suivant analyse un document XML ("books.xml) Chargeur d'analyseur XML :
<html> <body> <script type="text/javascript"> try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } catch(e) { try //Firefox, Mozilla, Opera, etc. { xmlDoc=document.implementation.createDocument("","",null); } catch(e) {alert(e.message)} } try { xmlDoc.async=false; xmlDoc.load("books.xml"); document.write("xmlDoc is loaded, ready for use"); } catch(e) {alert(e.message)} </script> </body> </html>
Erreur : Accès entre domaines
Pour des raisons de sécurité, les navigateurs modernes ne permettent pas l'accès entre domaines.
Cela signifie que le site web ainsi que le fichier XML qu'il tente de charger doivent être situés sur le même serveur.
L'exemple de CodeW3C.com ouvre un fichier XML situé dans le domaine de CodeW3C.com.
Si vous envisagez d'utiliser l'exemple ci-dessus sur votre page web, vous devez placer le fichier XML sur votre propre serveur. Sinon, xmlDoc.load() produira une erreur "Accès refusé".
Analyser une chaîne XML - Un exemple cross-browser
Le code suivant charge et analyse une chaîne XML :
<html> <body> <script type="text/javascript"> text="<bookstore>" text=text+"<book>"; text=text+"<title>Harry Potter</title>"; text=text+"<author>J K. Rowling</author>"; text=text+"<year>2005</year>"; text=text+"</book>"; text=text+"</bookstore>"; try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(text); } catch(e) { try //Firefox, Mozilla, Opera, etc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } catch(e) {alert(e.message)} } document.write("xmlDoc is loaded, ready for use"); </script> </body> </html>
Remarque :Internet Explorer utilise la méthode loadXML() pour解析 XML chaîne, tandis que d'autres navigateurs utilisent Objet DOMParser.
- Page précédente Arbre de nœuds DOM
- Page suivante Chargement DOM