#xml-parsing #sencha-touch
#синтаксический анализ xml #sencha-touch
Вопрос:
Я искал способ получить XML-данные с сервера и проанализировать их в объекте, чтобы я мог получить доступ к этим данным в любом месте моего приложения. Я нашел много кода, делающего это, создавая модель, хранилище и устанавливая прокси с помощью XmlReader. Да, это хорошо, но есть необходимость создания хранилища и прокси. Могу ли я каким-либо образом сказать, что это мой URL-адрес XML-данных, дайте мне проанализированный xml в объекте. Я думаю, что для получения JSON у нас есть способ, как показано ниже.
Ext.util.JSONP.request({
url: '<XYZ_URL>',
callbackKey: 'Successcallback',
Successcallback: function(result) {
console.log(result.data);
// Do your thing here
}});
Здесь мы получаем данные JSON с сервера, а в функции Successcallback мы получаем данные JSON в виде объекта в результате. Затем я могу сохранить этот результирующий объект глобально и использовать его или проходить через него где угодно.
Могу ли я сделать то же самое с XML-данными или я получу XML-данные в виде строки, а затем мне нужно будет проанализировать их вручную?
Комментарии:
1. В чем проблема с использованием хранилища? Я имею в виду, что они существуют по какой-то причине
2. Допустим, я не использую списки или компоненты с определенным шаблоном. У меня есть панель вкладок, и заголовок вкладки поступает с сервера в форме xml. Как мне указать TabPanel использовать данные, полученные с сервера, в формате xml? это может быть панель инструментов с n количеством кнопок с динамическим текстом.
Ответ №1:
вы можете отправить Ajax-запрос на указанный URL-адрес, и в методе отчета об успехе вы можете получить нужные данные
e.g.
Ext.Ajax.request({
url: 'some_url',
success: function(response, opts) {
// parse the responseText
var data = Ext.util.JSON.decode(response.responseText);
// save the username
localStorage.setItem("name", data.name);
localStorage.setItem("id", data.id);
}
});