2013-03-25 2 views
0

Как я могу разобрать широчайшее и длинное значение в JQuery из PHP файла, который выводит это:Синтаксические из файла XML

<gps> 
    <loc lat="42.6438" lon="21.9275" alt="29.7" spd="0" dir="342" cep="203.1" upd="2013-03-09 02:10:31"/> 
</gps> 

UPDATE! Это мой полный код в head.php

 $.ajax({ 
      type: "GET", 
      url: "gps-tracking/track.xml", 
      dataType:'data', 
      complete: function(data){ 
        var loc = $("loc"); 
        var lat = loc.attr("lat"); 
        var lon = loc.attr("lon"); 
        console.log(data); 
        console.log(lat); 
      } 
     }); 

console.log (данные); выдает это:

Object { readyState= 4 , responseXML=document, responseText= "<gps><loc lat="40.6438"...03-09 02:10:31"/></gps>" , more...} 

console.log (lat); выходы: undefined!

ответ

1

На самом деле ваш код:

complete: function(data){ 
        var loc = $("loc"); 
        var lat = loc.attr("lat"); 
        var lon = loc.attr("lon"); 
        alert (lat); 
      } 

пытается сохранить элемент Dom "локация" в вар Loc. Прежде всего, вы должны попытаться использовать данные своей полной функции, потому что там хранятся ваши значения php.

Затем попытайтесь создать DOM элемент, как $(data).children('loc').attr('lat');

Малый демо скрипку: http://jsfiddle.net/P6JVw/

А вот код, который вы должны использовать:

complete: function(data){ 
         var xmlObj = $(data.responseText).children('loc'); 
         var loc = xmlObj.attr('loc'); 
         var lat = xmlObj.attr('lat'); 
         var lon = xmlObj.attr('lon');; 
         alert (lat); 
       } 
+0

Его странно, но я все равно получаю undefined! – oMikR0n

+0

Для тестирования того, как выглядят данные, сделайте console.log (данные) и добавьте результаты в свой первый пост. Возможно, есть проблема в запросе ajax . – hyde

+0

Я получил это на console.log (данные); 'Object {readyState = , responseXML = документ, responseText = "" , больше ...} ' – oMikR0n

0

Довольно просто. Просто позвоните attr()

var loc = $("loc"); 
var lat = loc.attr("lat"); 
var lon = loc.attr("lon"); 
+0

Я попробовал его, а затем предупреждение (лат); но я получаю undefined :( – oMikR0n