4

ポッドキャスト用の RSS フィードがあり、本質的にやろうとしているのは、RSS フィード内の URL を html5 オーディオ プレーヤーに入力することです。

これを行う最善の方法は、ajax を使用してリンクを解析し、オーディオ プレーヤーの src に追加することです。私は ajax でこれを行うことを妨げる同じドメイン ポリシーを認識しているので、これを回避するためにクロス ドメイン ajax プラグイン (http://bit.ly/Jbi9iX) を使用しています。

以下のコードが機能しない理由を正確に理解するのに苦労していurlます#results.srcオーディオプレーヤー。

$(document).ready(function () {
    $.ajax({
        url: 'http://theresidency.libsyn.com/rss',
        type: 'GET',
        dataType: "xml",
        success: parseXml
    });
});

function parseXml(xml) {
var item = $(xml).find("item");

  $(item).each(function() {
    $("#results").append($("enclosure").attr("url").text() + "<br />");
  });

}

Chrome 開発ツールでエラーが発生していません。他の例を見回しましたが、何が間違っているのかを理解できます。

xml/rss の例を次に示します: http://pastebin.com/stuY495c そして、これまでにアップロードしたものを次に示します: http://bit.ly/J9QHZc

どんな助けでも大歓迎ですので、事前に感謝します!

4

2 に答える 2

6

関数にデータを渡す正確な場所は、次のようにする必要があると思います。

$(document).ready(function () {
    $.ajax({
        url: 'http://theresidency.libsyn.com/rss',
        type: 'GET',
        dataType: "xml",
        success: function(data) {
           parseXml(data);
        }
    });
});

function parseXml(xml) {
var item = $(xml).find("item");

  $(item).each(function() {
    $("#results").append($("enclosure").attr("url").text() + "<br />");
  });

}

あるいは単に:

$(document).ready(function () {
    $.ajax({
        url: 'http://theresidency.libsyn.com/rss',
        type: 'GET',
        dataType: "xml"
    }).done(function(xml) {
        $.each($("item", xml), function(i, e) {
            $("#results").append($("enclosure").attr("url").text() + "<br />");
        });
    });
});

編集:

これをもう少しいじって、思いついた:

$(document).ready(function () {
    $.ajax({
        url: 'http://query.yahooapis.com/v1/public/yql?q=%20SELECT%20*%20FROM%20xml%20WHERE%20url%3D%22http%3A%2F%2Ftheresidency.libsyn.com%2Frss%22&format=json&callback=',
        dataType: "json"
    }).done(function(data) {
        $.each(data.query.results.rss.channel.item, function() {
            $("#results").append(this.enclosure.url + "<br />");
        });
    });
});​

私はそれがあなたが探しているものだと信じています、ここにデモンストレーションがあります

于 2012-05-13T20:49:52.313 に答える
1

RSS の解析は、基本的な XML の解析よりも少し複雑です。Google が代わりに json-object を返すことができます。

$(function() {
   parseRSS('http://theresidency.libsyn.com/rss');
});

function parseRSS(url) {
  $.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) {
      $.each(data.responseData.feed.entries, function() {
        $('#results').append(this.link + '<br />');
      })
    }
  });
}
于 2012-05-13T21:42:34.053 に答える