我正在构建一个rss接收器,那里有很多很棒的资源,但实际上没有一个是SOURCE而不是AUTHOR。当我尝试编辑代码以拉动SOURCE时,它显示为UNDEFINED。我在.rss文件中看到了SOURCE,但是当我在控制台中分析对象时,它实际上并没有检索到SOURCE数据字段。
以下是我要编辑的代码:
function parseRSS(url, container) {
$.ajax({
url: 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url),
dataType: 'json',
success: function(data) {
console.log(data.responseData.feed);
$(container).html('<h2>'+capitaliseFirstLetter(data.responseData.feed.title)+'</h2>');
$.each(data.responseData.feed.entries, function(key, value){
var thehtml = '<h3><a href="'+value.link+'" target="_blank">'+value.title+'</a></h3><br/>' +value.source ;
$(container).append(thehtml);
});
}
});
}
function capitaliseFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
这是我的.rss xml树:
RSS XML TREE: See the SOURCE node is there like all the rest
这是控制台对象:
console object array showing that SOURCE is not being read by the parser
非常感谢任何帮助!谢谢!
答案 0 :(得分:0)
您可以获取XML文档并对其进行解析。然后你控制你所看到的但看不到的东西。
我认为使用服务的问题在于他们选择暴露的内容,看起来源不是其中之一。我刚刚决定获取xml文档并自己解析它(下面的示例 - 需要php)。我希望这可以帮助你。 我通过卷曲xml文档然后使用SimpleXMLElement将其转换为xml文档来获取源代码 - 然后您可以非常轻松地遍历它:
<?php
function get_data($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$sXML = get_data('http://newsdesk-feeds.moreover.com/feed/a60eeb8d9fcdc35b.rss');
//$sXML = get_data('http://alanstorm.com/atom');
echo $sXML;
$oXML = new SimpleXMLElement($sXML);
foreach($oXML->channel->item as $oEntry){
echo "<div style='background: red;'>". $oEntry->source . "</div>"; // your source
}
这是检查过的DOM。你真的可以得到你想要的任何东西。还有一些库可能会把它变成JSON给你。尽管如此,自己也不难做到。
以下是来源的输出: