从媒体获取URL:在使用jQuery XML的RSS提要内容(Get URL from media:

2019-09-22 16:37发布

我试图检索图像(与其他内容一起) media:content为每个岗位在一个RSS feed: http://bits.blogs.nytimes.com/feed/

我试过此链接(与许多人一起) jQuery的XML解析如何获取元素的属性 ,但我仍然得到错误。

有一个PHP文件以及(参见下图),但我不认为这是问题。

我已尝试若干变化和我正在与结束了<img src="undefined" alt="image">

这就是日志说TypeError: 'undefined' is not an object (evaluating '$item.find('media\\:content').attr('url').text')

这里是(我想要抓住什么是URL =“此值”)从RSS提要的XML的例子<media:content url="http://graphics8.nytimes.com/images/2011/11/30/technology/bits-daily-report/bits-daily-report-thumbStandard.jpg" medium="image" width="75" height="75"></media:content>

这是我与jQuery嵌入式HTML。 感谢您所有的解决方案,指针和建议。 我现在正在打一个路障。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>Your Site Title</title>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){

function get_rss_feed() {

// RSS Feed Var
var rssUrl = 'http://bits.blogs.nytimes.com/feed/';

//clear the content in the div for the next feed.
$("#feedContent").empty();

//use the JQuery get to grab the URL from the selected item, put the results in to an argument for parsing in the inline function called when the feed retrieval is complete
$.get('rss.php?url='+rssUrl, function(d) {

    //find each 'item' in the file and parse it
    $(d).find('item').each(function() {

        //name the current found item this for this particular loop run
        var $item = $(this);
        // grab the post title
        var title = $item.find('title').text();
        // grab the post's URL
        var link = $item.find('link').text();
        // next, the description
        var description = $item.find('description').text();
        //don't forget the pubdate
        var pubDate = $item.find('pubDate').text();
        var media = $item.find('media\\:content').attr('url').text();

            // now create a var 'html' to store the markup we're using to output the feed to the browser window
        var html = "<div class=\"entry\"><h2 class=\"postTitle\">" + title + "<\/h2>";
        html += "<em class=\"date\">" + pubDate + "</em>";
        html += "<p class=\"description\">" + description + "</p>";
        html += "<img src=\"" + media + "\" alt=\"image\"/>";
        html += "<a href=\"" + link + "\" target=\"_blank\">Read More >><\/a><\/div>";

        //Send Results to a div
        $('#rss').append($(html));  
    });
});

};
get_rss_feed();

  });
</script>
</head>

<body>
<h1>RSS TEST</h1>
<!-- Your RSS DIV -->
<div id="rss"></div>

</body>
</html>

这是我的PHP

<?php

  ob_start();

  $curl = curl_init($_GET['url']);

  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($curl, CURLOPT_HEADER, false);

  $xml = curl_exec($curl);  
  header("Content-Type: text/xml");
  echo $xml; // Results

  $output = ob_get_clean();

  curl_close($curl);
  echo $output;

  ob_end_flush();


?>

Answer 1:

这个:

var media = $item.find('media\\:content').attr('url').text();

应该是这样的:

 var media = $item.find('media\\:content, content').attr('url'):

编辑(添加其他更改):

我变了:

$(d).find('item').each(function() {

至:

$(d).find('item').each(function(index) {

我加了(限制到三个饲料项目):

if (index >= 3) { return false }

并且我增加了(如果没有定义图像设置为空白图像):

if (typeof mediatest === 'undefined') { var mediatest = 'blank.png' };

一切都很正常......至少到目前为止:)



文章来源: Get URL from media:content in RSS XML feed with jQuery