当前位置: 首页 > 面试题库 >

使用jquery和ajax解析xml

东郭淇
2023-03-14
问题内容

我为播客提供了一个rss提要,基本上我想做的是在RSS提要中使用URL填充html5音频播放器。

我认为最好的方法是使用ajax解析链接,然后将其附加到音频播放器的src中。我知道相同的域策略会阻止我使用ajax进行此操作,因此我正在使用跨域ajax插件(http://bit.ly/Jbi9iX)来解决此问题。

我竭力要弄清楚究竟为什么下面的代码不工作对我来说,基本上在这个阶段,我只是想追加urlRSS提要入内的#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

任何帮助将不胜感激,所以在此先感谢!


问题答案:

您将数据传递到函数的确切位置,我认为您需要这样做:

$(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 />");
        });
    });
});​

我确实相信这是您想要的,这是一个 演示



 类似资料:
  • 问题内容: 我尝试解析以下类型的XML(来自 getMembers.php的 数据): 我使用下面的代码来解析它: 没错,但我同时获得了两个名字。 喜欢: 比尔·盖茨鲍勃·巴克<-first loop> 代替 比尔·盖茨<-第一个循环> 鲍勃·巴克<-第二循环> 任何帮助将是巨大的! 问题答案: 我认为您遍历成员,而不是姓名: 也许您的XML应该看起来像:

  • 本文向大家介绍jQuery Ajax全解析,包括了jQuery Ajax全解析的使用技巧和注意事项,需要的朋友参考一下 什么是Ajax Ajax基本概念 Ajax(Asynchronous JavaScript and XML):翻译成中文就是异步的JavaScript和XML。 从功能上来看是一种在无需重新加载整个网页的情况下能够更新部分网页的技术。 传统的网页 想要更新内容或者提交表单就要重新

  • 问题内容: 我在使用jQuery 解析HTML字符串时问我如何在html字符串上使用jQuery。一切正常,但是当我将其应用于ajax时-它不起作用。这是代码。 moo.html包含 如何获得斑马纹和杠铃? 问题答案: 我认为其中的换行符可能会让您失望。 html中的所有换行符最终都将由jQuery解析并保留为文本节点元素。结果,当这些节点中的第一个被命中并调用时,它将停止迭代(不适用于非Elem

  • 问题内容: 我使用以下函数通过jQuery AJAX发布表单: 它发布正常,但我无法解析响应,它记录到控制台,如下所示 我相信这是我正在寻找的回应。 但是,当我尝试执行响应对象的任何其他成员时,它就是。 任何建议表示赞赏。 问题答案: 呼唤 应该可以访问所需的数据。 现在应该显示“ 1”

  • 问题内容: 我正在使用JQuery执行Web服务调用,它是ajax函数,无法解析返回的数据。当我警告数据(alert($(data).find(“ return”)。text())为空时,我看到服务器响应xml数据,如下所示,当我警告(数据)时,我得到了[object XMLDocument给定我的XML结构并在下面使用命名空间,txt = $(data).find(“ return”)。text

  • 问题内容: 我正在尝试从数据库中将包含数据的对象数组放入jquery中以呈现在网站上。 例如:example.php 前index.html 输出: console.log(response); [“测试”,$ family:函数,$ constructor:函数,每个:函数,克隆:函数,干净:函数…] console.log(response [0] .example); 未定义 因此,从本质上