mozilla
Your Search Results

    DOMParser

    DOMParser can parse XML or HTML source stored in a string into a DOM Document. DOMParser is specified in DOM Parsing and Serialization.

    Note that XMLHttpRequest supports parsing XML and HTML from URL-addressable resources.

    Creating a DOMParser

    To create a DOMParser object simply use new DOMParser().

    For more information about creating a DOMParser in Firefox extensions, please see the documentation for nsIDOMParser.

    Parsing XML

    Once you have created a parser object, you can parse XML from a string using the parseFromString method:

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

    Error handling

    Note that if the parsing process failed, DOMParser currently does not throw an exception, but instead returns an error document (see bug 45566):

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

    The parsing errors are also reported to the Error Console, with the document URI (see below) as the source of the error.

    Parsing an SVG or HTML document

    The DOMParser can also be used to parse a SVG document (Firefox 10.0 / Thunderbird 10.0 / SeaMonkey 2.7) or a HTML document (Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9). There are three different results possible, selected by the MIME type given. If the MIME type is text/xml, the resulting object will be an XMLDocument, if the MIME type is text/svg+xml, it will be an SVGDocument and if the MIME type is text/html, it will be an HTMLDocument.

    var parser = new DOMParser();
    var doc = parser.parseFromString(stringContainingXMLSource, "application/xml");
    // returns a Document, but not a SVGDocument nor a HTMLDocument
    
    parser = new DOMParser();
    doc = parser.parseFromString(stringContainingXMLSource, "image/svg+xml");
    // returns a SVGDocument, which also is a Document.
    
    parser = new DOMParser();
    doc = parser.parseFromString(stringContainingHTMLSource, "text/html");
    // returns a HTMLDocument, which also is a Document.
    

    DOMParser HTML extension for other browsers

    /*
     * DOMParser HTML extension
     * 2012-09-04
     * 
     * By Eli Grey, http://eligrey.com
     * Public domain.
     * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
     */
    
    /*! @source https://gist.github.com/1129031 */
    /*global document, DOMParser*/
    
    (function(DOMParser) {
    	"use strict";
    
    	var
    	  DOMParser_proto = DOMParser.prototype
    	, real_parseFromString = DOMParser_proto.parseFromString
    	;
    
    	// Firefox/Opera/IE throw errors on unsupported types
    	try {
    		// WebKit returns null on unsupported types
    		if ((new DOMParser).parseFromString("", "text/html")) {
    			// text/html parsing is natively supported
    			return;
    		}
    	} catch (ex) {}
    
    	DOMParser_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 real_parseFromString.apply(this, arguments);
    		}
    	};
    }(DOMParser));
    

     

    Browser compatibility

    Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
    XML support 1 1.0 (1.7 or earlier) 9 8 3.2
    SVG support 4 10.0 (10.0) 10 15 3.2
    HTML support 30 12.0 (12.0) 10 17 Not supported
    Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    XML support (Yes) (Yes) ? (Yes) ?
    SVG support ? 10.0 (10.0) ? ? ?
    HTML support ? 12.0 (12.0) ? ? ?

    See also

    Document Tags and Contributors

    Contributors to this page: Ms2ger, Sephr
    Last updated by: Sephr,