[英]Jquery xml parse error
我正在使用ajax下载有关Sharepoint 2010搜索(数据包查询)的xml。 但是问题是当我尝试使用jquery遍历xml时。
$(document).ready(function() {
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
var timeout = null;
$('#SearchInputBox').on('keyup', function () {
var text = $(this).val();
if (timeout !== null) {
clearTimeout(timeout);
}
timeout = setTimeout(function () {
$('#LoadImage').show();
DoSearch(text);
}, 1000);
});
});
function searchComplete(xData, status) {
$('#LoadImage').hide();
var search_results = $("#result");
search_results.html('');
$(xData.responseXML).find("QueryResult").each(function() {
var err;
try {
var obj = $(this).eq(0);
var text = obj.text(); // works in Firefox and Chrome but not IE9
//var text = obj.text;
//var text = obj.xml;
var x = $("<xml>" + text + "</xml>");
var docs = x.find("LinkUrl");
var len = docs.length;
var link;
for(var i=0; i<len; i+=1) {
link = $(docs[i]).text();
if (link.toLowerCase().endsWith(".pdf")) {
search_results.append(link + "<br/>");
}
}
} catch(err) {
search_results.text("An error occured: " + err);
}
});
}
在这段代码中,我检索了xml数据,然后尝试将其显示在浏览器中。 这适用于Firefox和Chrome,但不适用于IE9。 我需要它才能在IE9中工作。
它在.text()
方法上失败,并且如果我尝试.html()
它也会在那里失败。
我认为.text()方法可能会发生一些特定于浏览器的事情,或者我需要使用http://api.jquery.com/jQuery.parseXML/来解析xml。
有谁知道如何解决这一问题?
谢谢。
正如您在问题中所说的那样,您需要将其解析为XML,而不是HTML。
调用$.parseXML
考虑到您已经在使用jQuery,为什么不只使用jQuery.ajax()发出请求? 这将有助于解决许多跨浏览器的不一致问题,并且jQuery将对响应类型进行“智能猜测”,并自动为您解析。 您也可以使用dataType
选项指定它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.