我使用YQL使用JSONP获取数据,并返回一个XML字符串。我使用$.parseXML
解析它,并将其放入jQuery选择器中,并尝试选择一个节点。但是,它包含一个名称空间(例如,yweather:
),并且jQuery似乎无法正常工作。在jQuery中选择一个具有名称空间的节点
从other SO answers他们建议做\\:
会解决它。确实如此,但只有当我接收到的数据是XML(我是JSONP。)
$.ajax({
url: "http://query.yahooapis.com/v1/public/yql",
data: {
q: "select item from weather.forecast where location=48907",
format: "jsonp"
},
dataType: "jsonp"
}).success(function(data){
var xml = $.parseXML(data.results[0]);
console.log($("yweather\\:condition", xml));
});
它没有匹配。
可以从YQL中的同一张表中获取数据,而不是xml结果,而不是xml ...亲自可以更容易地使用IMO。转到[YQL控制台](http://developer.yahoo.com/yql/console/#h=select+*+from+weather.forecast+where+location%3D48907)并选择'json'格式并记下json格式添加到控制台 – charlietfl
演示中生成的URL在密歇根州相同的位置,数据全部在json http://jsfiddle.net/faNaM/ – charlietfl
@charlietfl - 我只注意到YQL允许跨源请求,谢谢。 –