1

作为一个菜鸟,我正在尝试解析 weather.com RSS 提要以显示在我的网站上。下面的代码成功检索数据并将其显示为警报。我的问题是如何更进一步并解析生成的提要,而不仅仅是显示它?目标是获取部分响应并将其嵌入到页面上的 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>
4

1 回答 1

1

如果它对任何人有帮助,这就是我最终的做法。我选择了来自 accuweather.com 的提要,而不是 weather.com,只是因为我碰巧先让它工作了。

1)获取提要“标题”字段的值,其中包含我需要的当前天气值。

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>
于 2013-02-08T22:39:54.677 回答