如何使用JSON解析RSS数据

时间:2013-02-06 06:04:44

标签: json rss

作为一个菜鸟,我正在尝试解析我的网站上显示的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>

1 个答案:

答案 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>