$.ajax({
url: "http://xml.weather.yahoo.com/forecastrss?p=CHXX0008&u=f",
dataType: 'xml',
type: 'GET',
timeout: 2000,
error: function(xml){
alert("加載XML文件出錯!");
},
success: function(xml){
$(xml).find("yweather:location").each(function(){
$("#show2").text(
$(this).attr("city")
);
});
}
});
對雅虎天氣API返回的XML格式解析
感覺問題是這邊的
$("#show2").text(
$(this).attr("city")
);
如果直接輸出 <title>Yahoo! Weather - Beijing, CH</title> 裡面的可以
但是 <yweather:location city="Beijing" region="" country="CH"/> 輸出屬性“city”就不行
想問一下是什麼問題,大神求指導,小白一枚
find() 方法獲得當前元素集合中每個元素的後代,通過選擇器、jQuery 對象或元素來篩選。
你返回的XML沒有子節點,所以find查到的是空集合;
此外返回節點yweather:location中有jQuery的選擇器的保留字符":",如果你的xml數據的有子節點,則需要對冒號轉義。示例代碼:
var xml = '<t><yweather:location city="Beijing" region="" country="CH"/></t>';
var list = $(xml).find("yweather\\:location ");
alert("list length:"+list.length+","+$(list[0]).attr("city"));