簡體   English   中英

使用jQuery返回XML文件內容

[英]Returning XML file contents using jQuery

我想使用JavaScript / jQuery讀取本地文件的內容。 我理解這經常被討論,但我的例子有點不同,因為我想在完成提取后返回內容而不是操縱HTML。

我不想談論安全問題和本地文件,因為這段代碼是在我自己的瀏覽器中運行的(Chrome,我從--allow-file-access-from-files標志開始)。

我有以下功能來獲取數據......

function readData() {
    $.ajax({
        type: "GET",
        url: "data.xml",
        async: false, // this does not change the outcome
        dataType: "xml",
        success: function(xml) {
            // Got the data, find entries and return them.
            console.log("Returning data");
            var doc = $(xml).find('entry');
            // This is where most examples manipulate dom, I want to
            // return the data instead
            return doc;
        }
    });
}

現在我想做...

var xmlDoc = readData();
// undefined, why?

並將文檔放在變量中。 相反,我得到了不確定。 似乎函數在獲取文件之前返回。 或者我可能有變量范圍的問題?

有誰知道如何做到這一點? 是的,我確信我想使用JavaScript,即使我在本地這樣做。

關於$ .ajax調用的處理stackoverflow答案有一個很好的例子,可以使用它。 可以稍微修改此示例,以便為您提供接近您要查找的內容。

function xhr_get(url) {

  return $.ajax({
    url: url,
    type: 'get',
    dataType: 'xml',
    beforeSend: showLoadingImgFn
  })
  .always(function() {
    // remove loading image maybe
  })
  .fail(function() {
    // handle request failures
  });

}

植入上述方法的例子是:

xhr_get('/index').done(function(data) {
  // do stuff with index data
});

xhr_get('/id').done(function(data) {
  // do stuff with id data
});

你可能想要這樣的東西:

function readData() {
    var returnData;

    xhr_get('data.xml').done(function(data) {
        returnData = data;
    });

    return returnData;

}

希望有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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