我想做什么:
这是我第一次在网页中使用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>
如何在页面上的必填字段中显示文字?
提前致谢! :)
答案 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)