我使用Google AJAX Feed API使用脚本从不同来源加载新闻。如何获得条目的描述?以下是一个问候世界计划:
<html>
<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://news.google.com/?output=rss");
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 div = document.createElement("div");
div.appendChild(document.createTextNode(entry.title));
container.appendChild(div);
}
}
});
}
google.setOnLoadCallback(initialize);
</script>
</head>
<body>
<div id="feed"></div>
</body>
</html>
如何使用entry
对象获取描述?我使用谷歌URL - http://news.google.com/?output=rss用于XML格式的RSS源。我想要“描述”部分。我怎么能得到那个
答案 0 :(得分:3)
您可以获取描述,但不能使用JSON格式和entry
对象来执行此操作。如果您仔细阅读https://developers.google.com/feed/v1/devguide处的Feed参数,您会看到description
不是它在入门级返回的字段 - 只是在Feed级别。
为此,您需要以XML格式请求Feed,然后加载各个节点,包括description
。以下是我用过的相关代码段 - 根据需要更改格式等。
function initialize() {
var feed = new google.feeds.Feed("http://myblog.com/blog/feed/");
feed.setResultFormat(google.feeds.Feed.XML_FORMAT);
feed.load(function(result) {
if (!result.error) {
var items = result.xmlDocument.getElementsByTagName('item');
item = items[0];
//build each element
var title = document.createElement("h4");
title.innerHTML = item.getElementsByTagName('title')[0].firstChild.nodeValue;
var content = document.createElement("p");
content.innerHTML = item.getElementsByTagName('description')[0].firstChild.nodeValue;
href = item.getElementsByTagName('link')[0].firstChild.nodeValue;
}
答案 1 :(得分:2)
可以使用内容变量检索HTML描述。 因此你应该: div.appendChild(document.createTextNode(entry.content));
请注意,这将检索HTML数据格式。
答案 2 :(得分:1)
经过大量挖掘后,我发现Google API使用“contentSnippet”而不是说明。不需要XML格式。
function initialize() {
var feed = new google.feeds.Feed("http://myblog.com/blog/feed/");
feed.setNumEntries(10);
feed.load(function(result) {
if (!result.error) {
$(document).ready(function(){
$('#feed-pull').append('<ul></ul>');
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
var desc = entry.contentSnippet;
答案 3 :(得分:-1)
更改entry.title in:
div.appendChild(document.createTextNode(entry.title));
到entry.description。