使用jquery的Xml解析在IE中不起作用

我使用下面的代码,对我来说在FF中工作正常但在IE中有问题

var lastName = ""; $(document).ready(function() { $('#ctl00_PlaceHolderSearchArea_ctl01_S3031AEBB_InputKeywords').keyup(function(event) { lastName = $('#ctl00_PlaceHolderSearchArea_ctl01_S3031AEBB_InputKeywords').val(); if (lastName.length < 1) {$('#Main').hide(); HideImage();} else { search(); } }); }); function search() { var queryXML = "urn:Microsoft.Search.Response.Document:DocumentSharepointSearchSELECT PREFERREDNAME,FirstName,LastName,JobTitle,Department,Email,WorkEmail,WorkPhone,Skills,PictureUrl,Path,Rank,MobilePhone FROM scope() where \"SCOPE\"='People' AND ((\"JobTitle\" LIKE '%" + lastName + "%') OR (\"Skills\" LIKE '%" + lastName + "%') OR (\"LastName\" LIKE '%" + lastName + "%') OR (\"FirstName\" LIKE '%" + lastName + "%') OR (\"Department\" LIKE '%" + lastName + "%') OR (\"Email\" LIKE '%" + lastName + "%') OR (\"WorkEmail\" LIKE '%" + lastName + "%') OR (\"PreferredName\" LIKE '%" + lastName + "%'))110truetruetruetruetruetruetrue"; var soapEnv = " \  \  \ " + escapeHTML(queryXML) + " \  \  \ "; $.ajax({ url: "/_vti_bin/search.asmx", type: "POST", dataType: "xml", data: soapEnv, complete: processResult, contentType: "text/xml; charset=\"utf-8\"" }); function processResult(xData, status) { $(xData.responseXML).find("QueryResult").each(function() { var x = $("" + $(this).text() + ""); x.find("Document").each(function() { var y = $("" + $(this).html() + ""); var pname= ""; var fname = ""; var lname = ""; var jobtitle = ""; var mphone = ""; var wemail = ""; var workphone = ""; var path = ""; var purl = ""; var title = ""; y.find("Property").each(function() { nameElement = $(this).find("Name").text(); if (nameElement == "PREFERREDNAME") { pname = $(this).find("Value").text(); } else if(nameElement == "FIRSTNAME") { fname = $(this).find("Value").text(); } else if(nameElement == "LASTNAME") { lname = $(this).find("Value").text(); } else if(nameElement == "JOBTITLE") { jobtitle = $(this).find("Value").text(); } else if(nameElement == "MOBILEPHONE") { mphone = $(this).find("Value").text(); } else if(nameElement == "WORKEMAIL") { wemail = $(this).find("Value").text(); } else if(nameElement == "WORKPHONE") { workphone = $(this).find("Value").text(); } else if(nameElement == "PICTUREURL") { purl = $(this).find("Value").text(); } else if(nameElement == "PATH") { path = $(this).find("Value").text(); } else if(nameElement == "TITLE") { title = $(this).find("Value").text(); } if (document.getElementById('AnsDiv') != null) { $('#AnsDiv').remove(); } }); }); }); } } function escapeHTML (str) { return str.replace(/&/g,'&').replace(//g,'>'); } 

所以我在IE中的问题是我无法在下面的代码行中获得标记“Document”

  x.find("Document").each(function() { 

我得到了我的解决方案 只需使用下面的代码进行Xml Dom解析

  if (window.DOMParser) { parser=new DOMParser(); xmlDoc=parser.parseFromString(xData,"text/xml"); } else{ xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(xData); } 

也改变了这条线

  var y = ($.browser.msie) ? $("" + $(this).context.xml + "") : $("" + $(this).html() + "");