Использование AJAX с jQuery - PullRequest
0 голосов
/ 16 ноября 2010

Как я мог GET информацию в файле XML и считывать ее в массив объекта, чтобы я мог получить к ней доступ из любой функции? Какой лучший способ пойти по этому поводу? Я использую jQuery и AJAX.

Спасибо, Эллиот Бонневиль


РЕДАКТИРОВАТЬ: Вот пример кода того, что у меня есть:

function GetQuestions() {
        $.ajax({
            type: "GET",
            url: "questions.xml",
            dataType: "xml",
            success: function(xml) {
                x = 0;
                x = $(xml).find('Questions').length;

                var questionID = $.random(x);

                //Here's where I need to iterate through the questions to find the one with the ID specified by the random var above.
            }
        }
    }

Ответы [ 3 ]

1 голос
/ 16 ноября 2010

Вы можете использовать $. Get :

$.get('content/file.xml', function(data) {
   // convert to JSON for easier manipulation
}, "xml");

Поскольку вы хотите "получить к нему доступ из любой функции", вам, вероятно, потребуется преобразовать XML в JSON.

Для этого нет встроенной функциональности - вам понадобится плагин, подобный здесь .

, который также вызывает вопрос - почему бы просто не вернуть JSONс сервера на первое место?

0 голосов
/ 16 ноября 2010

Это как для jquery xml reader. Вам нужно прочитать узел за узлом и вставить в массив, затем сериализовать массив в формат json с помощью функции jquery serializeArray, я не проверял код, но, вероятно, это то, чтотебе нужно.

 $(document).ready(function(){
        var mystuff = new Array();
        $.ajax({
            type: "GET",
            url: "sites.xml",
            dataType: "xml",
            success: function(xml) {
                mystuff = $(xml).find('site');
            }
        });
       var serialized = mystuff.serializeArray()
    });
0 голосов
/ 16 ноября 2010
$.get('/path/to/file.xml', function(data){
    alert('xml loaded.');
}, 'xml');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...