media:content
RSS フィードの各投稿から (他のコンテンツと共に) 画像を取得しようとしています: 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')
RSS フィードからの XML の例を次に示します (url="this value" の内容を取得しようとしています)。
<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();
?>