簡體   English   中英

jQuery XML解析錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM