满意任意一久就会调用error方法告诉开发者XML无效,最后回来解析后底xml文档

这法子在象征 HTML
文档的Document对象及并无有。在调用 loadXML()往日,日常创制一个初的、空的 Document对象来保存解析的情节:

var doc = new ActivexObject ("MSXML2.DOMDocument");
doc.loadXML(markup);

 

3.parsererror元素存在  针对非IE

1.xml易为false
 比如ie9解析失败是

IE采取的ActiveXObject对象解析xml,这么些一定于 IE
的法分析指定的 XML 文本串,然后在脚下文档对象被构建平蔸 DOM
节点作育,而丢弃从前设有为文档中之另节点。

jQuery.parseXML( data )
接受一个格式优秀的 XML 字符串,再次来到解析后的 XML 文档。

IE9以上的分析失利会报错执行catch语句把xml赋值为undefined

源码分析

办法 jQuery.parseXML() 使用浏览器原生的
XML 解析函数实现。

2.xml.documentElement足以变换为false
 针对IE低版本

IE9以下浏览器解析后赶回的是Document对象
失利了之目的为null

<parsererror xmlns="http:// www.mozilla.org/newlayout/xml/parsererror.xml">
(error description)
<sourcetext>(a snippet of the source XML)</sourcetext>
</parsererror>
if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
            jQuery.error( "Invalid XML: " + data );
}

冲本次下面就用了三只判断标准检验是不是解析成

于 IE 以外的浏览器被,如若条分缕析战败,方法
parseFromString()不会合丢来其他非凡,只晤面再次来到一个饱含了错误消息的文档对象,如下所示:

// Cross-browser xml parsing
    parseXML: function( data ) {
        var xml, tmp;
        try {
            if ( window.DOMParser ) { // Standard
                tmp = new DOMParser();
                xml = tmp.parseFromString( data , "text/xml" );
            } else { // IE
                xml = new ActiveXObject( "Microsoft.XMLDOM" );
                xml.async = "false";
                xml.loadXML( data );
            }
        } catch( e ) {
            xml = undefined;
        }
        if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
            jQuery.error( "Invalid XML: " + data );
        }
        return xml;
    },
//DOMParser 对象解析 XML 文本并返回一个 XML Document 对象。
//要使用 DOMParser,使用不带参数的构造函数来实例化它,然后调用其 parseFromString() 方法:

var doc = (new DOMParser()).parseFromString(text)

parseFromString定义如下

//text 参数是要解析的 XML 标记
//contentType 是文本的内容类型。可能是 "text/xml" 、"application/xml" 或 "application/xhtml+xml" 中的一个。注意,不支持 "text/html"

parseFromString(text, contentType)

率先对IE(9之下)和W3C标准进行区分处理,对于W3C浏览器而言采取专业的解析对象DOMParser,下边针对这一个目的举办扩充

在 IE 9+ 和其它浏览器被,会使 DOMParser
对象解析; 在 IE 9 以下的浏览器被,则使 ActiveXObject
对象解析

相关文章

网站地图xml地图