parseXML.js (739B)
1 define( [ 2 "../core" 3 ], function( jQuery ) { 4 5 "use strict"; 6 7 // Cross-browser xml parsing 8 jQuery.parseXML = function( data ) { 9 var xml, parserErrorElem; 10 if ( !data || typeof data !== "string" ) { 11 return null; 12 } 13 14 // Support: IE 9 - 11 only 15 // IE throws on parseFromString with invalid input. 16 try { 17 xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); 18 } catch ( e ) {} 19 20 parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; 21 if ( !xml || parserErrorElem ) { 22 jQuery.error( "Invalid XML: " + ( 23 parserErrorElem ? 24 jQuery.map( parserErrorElem.childNodes, function( el ) { 25 return el.textContent; 26 } ).join( "\n" ) : 27 data 28 ) ); 29 } 30 return xml; 31 }; 32 33 return jQuery.parseXML; 34 35 } );