使用url xml获取xml元素值

时间:2013-05-06 09:39:42

标签: javascript xml ajax

我正在尝试从xml文件中获取城市数据 下面是一个XML响应的URL,我从XML响应/文件中获取纬度和经度值。

http://maps.googleapis.com/maps/api/geocode/xml?address=Kenya&sensor=true

这是我的JavaScript代码: -

   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
function load(){
        var reg = "Kenya";
                alert(reg);
                var xml;
                $.ajax({
                  url: "http://maps.googleapis.com/maps/api/geocode/xml?address="+reg+"&sensor=true",
                  async: false,
                  dataType:'xml',
                  success: function(data)
                {
                    xml=data;
                }
            });
                var lat = $(xml).find('lat:eq(0)').text();
                var lng = $(xml).find('lng:eq(0)').text();  
                var radius = "100000";
                alert(lat);
                alert(lng);
                 $.ajax({
              url: "http://services.gisgraphy.com/geoloc/search?lat="+lat+"&lng="+lng+"&radius="+radius+"&format=json",
              async: false,
              dataType:'jsonp',
              success: function(data)
            {
                var asciiname = data.result[0].asciiName;
                console.log(asciiname);
            }
        });
            }
</script>
<body onload="load()">
</body>

有了这个,我试图用lat和lang值传递上面url中的Region名称。

http://services.gisgraphy.com/geoloc/search?lat=-0.0235590&lng=37.9061930&radius=100000

有了这个网址,我试图获得asciiName 但它不起作用,它什么都没显示 我做错了什么。帮我解决我的问题。
感谢。

1 个答案:

答案 0 :(得分:1)

以下是您的完整代码详情。您在cntry_code调用中遗漏了一些变量,例如dataTypeajax。如果您的问题已经解决,请接受。

<script>
    function getlg(){
            var cntry_code = 'IN';
            var reg = 'Rajkot';
            var xml;
            $.ajax({
                url: "http://services.gisgraphy.com//geocoding/geocode?address="+reg+"&country="+cntry_code+"&format=json",
                async: false,
                dataType:'jsonp',
                success: function(data){ 
                    var id = data.result[1].id;
                    console.log(id);
                    var lat = data.result[1].lat;
                    console.log(lat);
                    var lng = data.result[1].lng;  
                    console.log(lng);
                    var radius = "100000";
                    $.ajax({
                          url: "http://services.gisgraphy.com/geoloc/search?lat="+lat+"&lng="+lng+"&radius="+radius+"&format=json",
                          async: false,
                          dataType:'jsonp',
                          success: function(data)
                          {
                                for(i=0;i<data.result.length;i++)
                                {
                                    var asciiname = data.result[i].asciiName;
                                    console.log(asciiname);
                                }
                          }
                    });
                }
            });
        }
</script>