2015-06-24 5 views
2

Я пытаюсь отправить запрос на api, откуда я получаю ответ, является странным.Анализ XML-ответа Strange

У меня есть ответ как изображение.

enter image description here

Вот Реальный XML-ответ в тексте

<data type="array" class_name="Location" skip="0" limit="0"> 
    <Location> 
    <_id>558a8325535c1246bb00d5c5</_id> 
    <_parent_id>test-api</_parent_id> 
    <created-at type="integer">1435140901</created-at> 
    <lat type="float">11.0270643</lat> 
    <location>Avarampalayam, Coimbatore, Tamil Nadu, India</location> 
    <long type="float">76.9830277</long> 
    <updated-at type="integer">1435140901</updated-at> 
    <user-id type="integer">3566216</user-id> 
    </Location> 
    <Location> 
    <_id>558a83dd535c12843900dbbe</_id> 
    <_parent_id>test-api</_parent_id> 
    <created-at type="integer">1435141085</created-at> 
    <lat type="float">11.0310806</lat> 
    <location>Mettupalayam Bus Stand, Mettupalayam Road, Tatabad, Coimbatore, Tamil Nadu, India</location> 
    <long type="float">76.9525282</long> 
    <updated-at type="integer">1435141085</updated-at> 
    <user-id type="integer">3566216</user-id> 
    </Location> 
</data> 

Что попадает под #document

Как я могу получать значения в приведенной выше реакции?

Вот как я использую, чтобы запросить

$.ajax({ 
    url: 'https://api.quickblox.com/data/Location', 
    data: { token:'662d3330f192b4af77d5eef8de58f7e8c01a12a7' }, 
    method: 'get', 
    success: function(msg) { 
     var value = msg; 
     console.log(msg); 
    } 
}) 
+2

Возможно, я ошибаюсь, но это не JSON, это XML. И насколько я знаю, '# document' - это просто добавление браузера. Посмотрите, как данные действительно выглядят на вкладке 'network'. –

+0

Смешно выглядящий JSON у вас есть. Чтобы получить значения, вам просто нужно пройти через * XML *, который возвращается. Если вы добавите свой код, который делает запрос на вопрос, мы можем показать вам, как это сделать. –

+0

@OfirBaruch Крайне извините, его xml, получил его, обновлен – AngularAngularAngular

ответ

3

Вы можете использовать стандартные функции DOM обхода JQuery на возвращенном XML для извлечения значений вам требуется. Попробуйте это:

$.ajax({ 
    url: 'https://api.quickblox.com/data/Location', 
    data: { 
     token:'662d3330f192b4af77d5eef8de58f7e8c01a12a7' 
    }, 
    method: 'get', 
    dataType: 'xml', // note this is optional as jQuery should detect and parse it for you automatically 
    success: function(xml) { 
     $(xml).filter('data').find('Location').each(function() { 
      var id = $(this).find('_id').text(); 
      var parentId = $(this).find('_parent_id').text(); 
      var createdAt = new Date($(this).find('created-at').text()); 
      var lat = parseFloat($(this).find('lat').text()); 
      // retrieve the other properties... 

      // work with them here... 
     });    
    } 
}); 
+0

Привет, когда я пытаюсь утешить 'id', я ничего не получаю ... – AngularAngularAngular

+0

Вы отлаживали вообще? Проверьте консоль на наличие ошибок в коде или с запросом? –

1

Правильный путь заключается в использовании JSON вместо XML на веб

Поэтому в первую очередь заменить URLs с

url: 'https://api.quickblox.com/data/Location.json' 

, то вы можете просто получить доступ к любой ключ вам нужно

Также есть веб-SDK http://quickblox.com/developers/Javascript , поэтому вы можете использовать его для запроса

+0

Спасибо. Можете ли вы мне помочь в этом, пожалуйста ... Это было опубликовано для моего друга .. спасибо:) http://stackoverflow.com/q/31218982/4538704 – AngularAngularAngular