作为一个菜鸟,我正在尝试解析我的网站上显示的weather.com RSS提要。下面的代码成功检索数据并将其显示为警报。我的问题是如何进一步解析生成的Feed而不是仅显示它?目标是获取部分响应并将其嵌入到页面上的HTML中。例如,如果我想输出一个具有当前温度行的表,那么语法是什么?
<script>
function parseRSS(url, callback) {
$.ajax({
url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url),
dataType: 'json',
success: function(data) {
callback(data.responseData.feed);
}
});
}
parseRSS('http://rss.weather.com/weather/rss/local/USAK0012?cm_ven=LWO&cm_cat=rss&par=LWO_rss',
function(json)
{
alert("Result: " + JSON.stringify(json));
});
</script>
答案 0 :(得分:1)
如果它对任何人有帮助,这就是我最终如何做到这一点。我选择来自accuweather.com的feed而不是weather.com,只是因为我碰巧让它先工作。
1)获取Feed“title”字段的值,该字段包含我需要的当前天气值。
var weatherFeed = json;
var currentConditions = weatherFeed.entries[0].title;
2)提取特定元素,例如currentTemperature:
var firstColonIndex = currentConditions.indexOf(":");
var secondColonIndex = currentConditions.indexOf(":", firstColonIndex + 1);
var currentTemperature = currentConditions.substring(secondColonIndex + 1);
3)使用jQuery构建HTML并嵌入提取的天气值,然后将整个内容放在我页面上的Div元素中:
<div class="tile-content" id="MyCityWeather">
<script type="text/javascript">
var weatherElement = "#MyCityWeather";
var temperatureElement = $("<h2/>",
{
style: "margin-left: 25px!important; font-size: 46px!important;"
});
temperatureElement.append(currentTemperature);
temperatureElement.appendTo(weatherElement);
</script>
</div>