Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

DOMParser sert à analyser des chaînes et des flux de texte XML ou HTML dans un document DOM. DOMParser est spécifié dans DOM Parsing et Serialization.

XMLHttpRequest prend en charge l'analyse XML et HTML à partir des ressources adressables par URL.

Création d'un DOMParser

Pour créer un objet DOMParser, utilisez simplement DOMParser().

Pour plus d'information sur la création d'un  DOMParser dans Firefox extensions, voir la documentation de  nsIDOMParser.

Analyse XML

Une fois que vous avez créé un objet d'analyse, vous pouvez analyser XML à partir d'une chaîne à l'aide de la méthode parseFromString :

var parser = new DOMParser();
var doc = parser.parseFromString(stringContainingXMLSource, "application/xml");

Gestion d'erreurs

Notez que si le processus de traitement échoue, DOMParser ne génère actuellement aucune exception mais retourne en revanche un document d'erreur :

<parsererror xmlns="http://www.mozilla.org/newlayout/xml/parsererror.xml">
(error description)
<sourcetext>(a snippet of the source XML)</sourcetext>
</parsererror>

Les erreurs d'analyse sont aussi renvoyées à la console d'erreur, avec l'URI du document (voir plus bas) comme la source d'erreur.

Analyse d'un document SVG ou HTML

Le DOMParser peut également être utilisé pour analyser un document SVG (Firefox 10.0 / Thunderbird 10.0 / SeaMonkey 2.7) ou un document HTML (Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9). Trois résultats différents sont possibles, sélectionnés par le type MIME donné. Si le type MIME est text/xml, l'objet résultant sera un XMLDocument, si le type MIME est image/svg + xml, ce sera un SVGDocument et si le type MIME est text/html, ce sera un HTMLDocument.

var parser = new DOMParser();
var doc = parser.parseFromString(stringContainingXMLSource, "application/xml");
// retourne un document, mais pas un SVGDocument ni un HTMLDocument

parser = new DOMParser();
doc = parser.parseFromString(stringContainingSVGSource, "image/svg+xml");
// retourne un SVGDocument, qui est aussi un document.

parser = new DOMParser();
doc = parser.parseFromString(stringContainingHTMLSource, "text/html");
// retourne un HTMLDocument, qui est aussi un document.

Extension HTML DOMParser pour les autres navigateurs

/*
 * DOMParser HTML extension
 * 2012-09-04
 * 
 * By Eli Grey, http://eligrey.com
 * Public domain.
 * AUCUNE GARANTIE EXPRESSE OU IMPLICITE. À UTILISER À VOS RISQUES ET PÉRILS. 
 */

/*! @source https://gist.github.com/1129031 */
/*global document, DOMParser*/

(function(DOMParser) {
	"use strict";

	var proto = DOMParser.prototype, 
        nativeParse = proto.parseFromString;

	// Firefox/Opera/IE lancent des erreurs sur les types non pris en charge 
	try {
		//  WebKit renvoie null sur les types non pris en charge 
		if ((new DOMParser()).parseFromString("", "text/html")) {
			// text/html l'analyse est supportée nativement 
			return;
		}
	} catch (ex) {}

	proto.parseFromString = function(markup, type) {
		if (/^\s*text\/html\s*(?:;|$)/i.test(type)) {
			var
			  doc = document.implementation.createHTMLDocument("")
			;
	      		if (markup.toLowerCase().indexOf('<!doctype') > -1) {
        			doc.documentElement.innerHTML = markup;
      			}
      			else {
        			doc.body.innerHTML = markup;
      			}
			return doc;
		} else {
			return nativeParse.apply(this, arguments);
		}
	};
}(DOMParser));

DOMParser de Chrome/JSM/XPCOM/Privileged Scope

Voir l'article ici : nsIDOMParser

Spécifications

Spécification Statut Commentaire
DOM Parsing and Serialization
La définition de 'DOMParser' dans cette spécification.
Version de travail Définition initiale

Compatibilité des navigateurs

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
XML support 1 (Oui) 1.0 (1.7 ou moins) 9 8 3.2
SVG support 4 (Oui) 10.0 (10.0) 10 15 3.2
HTML support 30 (Oui) 12.0 (12.0) 10 17 7.1
Feature Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
XML support (Oui) (Oui) (Oui) ? (Oui) ?
SVG support ? (Oui) 10.0 (10.0) ? ? ?
HTML support ? (Oui) 12.0 (12.0) ? ? ?

Voir aussi


Liens Interwiki

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : loella16, fscholz, PWeilbacher, Yolek, Mgjbot, Chbok, VincentN
 Dernière mise à jour par : loella16,