检索XML数据以使用网页

时间:2014-02-19 15:46:53

标签: javascript jquery xml

我想做什么:

  • 根据IP(完成)获取位置
  • 使用城市和国家/地区代码使用openweather的API(完成)
  • 将XML读入我的网页,以便显示“温度”字段。

这是我第一次在网页中使用XML,我已经尝试了3天但没有成功。我已经搜索了google和stackoverflow,到目前为止已经尝试了很多东西,包括SimpleXMLElement,没有运气。

我目前在页面上的内容只是为您所在位置生成的XML表格链接。

<script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script>
<script language="JavaScript">
    var country = geoip_country_code();
    var city = geoip_city();
    document.write('<a href="http://api.openweathermap.org/data/2.5/weather?q=' + city + ',' + country + '&mode=xml&units=metric">Link text</a>');
</script>   

如何在页面上的必填字段中显示文字?

提前致谢! :)

3 个答案:

答案 0 :(得分:1)

更改API调用以返回JSON可能更容易,在这种情况下,您可以使用此代码,临时值存储在temp,temp_min和temp_max中。

var country = geoip_country_code();
var city = geoip_city();

$.getJSON('http://api.openweathermap.org/data/2.5/weather?q=' + city + ',' + country + '&mode=json&units=metric', function( json ) {
    var temp = json.main.temp;
    var temp_min = json.main.temp_min;
    var temp_max = json.main.temp_max;

    document.write( 'Temp: ' + temp + '<br>');
    document.write( 'Temp Min: ' + temp_min + '<br>');
    document.write( 'Temp Max: ' + temp_max + '<br>');
});

答案 1 :(得分:0)

您可以使用javascript库将xml转换为javascript对象 - 一个名为xml2json的库,它可以作为jQuery插件使用:http://www.fyneworks.com/jquery/xml-to-json/

然后你就可以做到:

var xmlObject;

$.ajax({
    url: url_of_xml,
    success: function(data) {
        xmlObject = $.xml2json(data);
    }
});

然后您只需将数据放在页面上即可。我的例子中的对象是假的,但它给你的想法是:

// put this line in the success callback of your ajax call
// after you create the xmlObject
$('#temp').html(xmlObject.weather.temp);

答案 2 :(得分:0)

要显示temperature您获取XML,并从返回的XML中读取三个温度属性之一:

 $.get("http://api.openweathermap.org/data/2.5/weather?q=' + city + ',' + country + '&mode=xml&units=metric", function(xml) {
 avg = $(xml).find("temperature").attr("value"));
 max = $(xml).find("temperature").attr("max"));
 min = $(xml).find("temperature").attr("min"));

(使用JQuery)