我的播客有一个 rss 提要,基本上我想做的是用 RSS 提要中的 URL 填充一个 html5 音频播放器。
我认为解决此问题的最佳方法是使用 ajax 解析链接,然后将它们附加到音频播放器的 src 中。我知道会阻止我使用 ajax 执行此操作的相同域策略,因此我使用跨域 ajax 插件 (http://bit.ly/Jbi9iX) 来解决这个问题。
我正在努力弄清楚为什么下面的代码对我不起作用,基本上在这个阶段我只是想将 RSS 提要中的 url
附加到 #结果
来显示它的工作,然后我将把它添加到音频播放器的 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
如有任何帮助,我们将不胜感激,在此先致谢!
最佳答案
你到底在哪里将数据传递给函数,我认为你需要这样做:
$(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 />");
});
});
});
我相信这就是您要找的,这里是 DEMONSTRATION
关于jquery - 使用 jquery 和 ajax 解析 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10575079/