jQuery $(XMLDoc).xml不适用于ie9

时间:2011-05-19 09:58:54

标签: jquery xml internet-explorer-8 internet-explorer-9

我正在尝试从多行数据集中检索行的原始XML作为字符串。 我正在使用jQuery(刚刚升级到1.6.1,看看这是否解决了这个问题没有成功),并且因为使用ie9,我从下面的代码personsArray[pid] = $(this).xml;获得的结果是'undefined'。有没有针对此的解决方法。任何帮助将不胜感激,非常感谢。

$(XMLdata).find('PersonRow').each(function(){
    var pid = $(this).find('PersonId').text();

    myData[i] = {
        id: $(this).find('PersonId').text(), 
        name: $(this).find('Name').text(), 
        dob: $(this).find('BirthDate').text(),
        address: $(this).find('MainAddress').text(),
        telNo: $(this).find('MainTelNumber').text()
    };

    personsArray[pid] = $(this).xml;
    i++;
});

1 个答案:

答案 0 :(得分:1)

试试这个......

personsArray[pid] = $(this).xml2;

(function($){         
  $.fn.xml2 = function(){  
    //alert ("TEST");
    if (window.XMLSerializer) // Internet Explorer 9 and Gecko
    {
        //alert ("MSIE 9, Gecko, XML FINDER");          
        var s="";
        if (this.length)
            (((typeof all!='undefined')&&all)?this:jQuery(this[0]).contents()).each(function(){
                s+=(new window.XMLSerializer()).serializeToString(this);
            });
        return s;
    } else {
        if (window.DOMParser) 
        {
            // Internet Explorer 8
            //alert ("MSIE 8, XML FINDER");
            var s="";
            if (this.length)
                (((typeof all!='undefined')&&all)?this:jQuery(this[0]).contents()).each(function(){
                    s+=window.ActiveXObject?this.xml:(new XMLSerializer()).serializeToString(this);
                });
            return s;
        }
        else // Internet Explorer OLD
        {           
            // Internet Explorer 8 and below
            //alert ("MSIE OLDER, XML FINDER");
            var s="";
            if (this.length)
                (((typeof all!='undefined')&&all)?this:jQuery(this[0]).contents()).each(function(){
                    s+=window.ActiveXObject?this.xml:(new XMLSerializer()).serializeToString(this);
                });
            return s;
        }
    }       
  };
})(jQuery);

祝你好运。