javascript - 解析RSS命名空间媒体:Thumbnail (js/jQuery)

标签 javascript rss

我已经尝试这样做好几天了,但我没有运气试图弄清楚如何做到这一点。

这是我正在尝试读取的 Atom 提要条目的示例。

<entry>
            <title>Is Traffic Draining Employee Productivity at Your Workplace?</title>
            <author><name>Seth Stuck</name></author>
            <source>
                <title>Team Georgia</title>
                <id>http://team.georgia.gov/feed/</id>
                <updated>2015-03-03T19:19:13.763475Z</updated>
            </source>
            <link rel="alternate" href="http://trap.it/pxgvM" />
            <id>http://trap.it/pxgvM</id>
            <updated>2015-03-03T19:19:13.763475Z</updated>
            <published>2015-03-03T19:19:13.763475Z</published>
            <summary>Is Traffic Draining Employee Productivity at Your Workplace?</summary>
            <media:thumbnail
             xmlns:media="http://search.yahoo.com/mrss/"
             url="http://images.higgs.trap.it/sizes/orig/9fb99a95f2f04977a0994c1a9f1d32cd.png"  />
        </entry>

我想要捕获的唯一真正重要的元素是

<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://images.higgs.trap.it/sizes/orig/9fb99a95f2f04977a0994c1a9f1d32cd.png"  />

我找不到有帮助的插件或文章。我从我读过的所有内容中得到的最接近的是:

$(document).ready(function() {

    var getXML = function() {
        var output = $('#output');
        var html = '';
        output.empty();

        $.ajax({
            type: 'GET',
            dataType: 'xml',
            data: null,
            url: 'file.xml',
            success: function(xml) {
                var $entries = $(xml).find('entry');
                $entries.each(function() {
                    var $entry = $(this);
                    var entry = $entry[0]; // DOM element
                    var content = $entry.find('content').text();
                    var thumbnail = entry.getElementsByTagNameNS('http://search.yahoo.com/mrss/', 'thumbnail')[0].getAttribute('url');
                    html += '<img src="' + thumbnail + '" />';
                    html += content;
                });
                output.html(html);
            },
            error: function(xhr, status, text) {
                console.log(status + ': ' + text);
            }
        });

    };

    $('#action').on('click', getXML);

});

来自这里 http://gabrieleromanato.name/jquery-parsing-XML-with-namespaces-the-definitive-solution/

在我的情况下我无法上类。大家还有什么建议吗?

谢谢

最佳答案

目前Team Georgia feed没有任何 media:thumbnail 条目,因此无法用于测试,但以下是另一个 Feed 的示例:

    <head>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
    google.load("feeds", "1");

    function initialize() {
        var feed = new google.feeds.Feed('http://channel9.msdn.com/Feeds/RSS'); // change the feed url 
        feed.setResultFormat(google.feeds.Feed.MIXED_FORMAT);
        feed.setNumEntries(25);
        feed.load(function(result) {
        if (!result.error) {
          var container = document.getElementById("feed");
          for (var i = 0; i < result.feed.entries.length; i++) {
            var entry = result.feed.entries[i];
            var mediaEntries = entry.xmlNode.getElementsByTagNameNS('*','thumbnail');
            for (var j = 0; j < mediaEntries.length; j++) {
                var mediaEntry = mediaEntries[j]; // This is the media:thumbnail item
                var mediaThumbnailUrl = mediaEntry.attributes.getNamedItem('url').value // Just the url

                var imageElement = document.createElement("img");
                imageElement.setAttribute('src', mediaThumbnailUrl);
                imageElement.setAttribute('width', '200px');
                imageElement.setAttribute('height', '200px');
                var div = document.createElement("div");
                div.appendChild(document.createTextNode(entry.title));
                div.appendChild(imageElement);
                container.appendChild(div);
            }
          }
        }
      });
    }
    google.setOnLoadCallback(initialize);
    </script>
    </head>
    <body><div id="feed"></div></body

我正在使用 Google Feed API,但循环 xml 标记的部分即使使用其他加载 Feed 的方法也应该可以工作。类似的问题在这里:Google Feed API - returning media:thumbnail

关于javascript - 解析RSS命名空间媒体:Thumbnail (js/jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28946600/

相关文章:

RSS JSON 显示的 Javascript 函数无法获取正确的个人资料图片

javascript - 将回车键绑定(bind)到页面上的特定按钮

javascript - 无法将 attrs.value 移交给 Directive 的 templateUrl 函数

javascript - 使用 D3.js 创建可变数量的元素

java - Android 应用程序比较 2 个 XML 文件

Android ListView - RSSPro 应用程序已停止工作?

java - 使用 Rome 库获取 rss 的图像 url

javascript - jQuery 来更新实际的 CSS

如何遍历一个JavaScript数组

c# - 安装 ASP.NET 5.0 版本的 System.ServiceModel.Syndication