So erhalten Sie die Beschreibung einer Nachricht von der GOOGLE AJAX Feed API
-
13-11-2019 - |
Frage
Ich verwende ein Skript, um Nachrichten aus verschiedenen Quellen zu laden, indem ich die Google AJAX-Feed-API verwende.Wie erhalte ich die Beschreibung eines Eintrags?Unten ist ein Hallo-Welt-Programm:
<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>
Wie kann ich die Beschreibung mit dem erhalten? entry
Objekt???Ich verwende die Google-URL - http://news.google.com/?output=rss für RSS-Feeds im XML-Format.Ich möchte den Teil „Beschreibung“.Wie kann ich das bekommen?
Lösung
Sie können die Beschreibung abrufen, aber Sie können nicht das JSON-Format und die verwenden entry
Einspruch dagegen einlegen.Wenn Sie die Futterparameter unter lesen https://developers.google.com/feed/v1/devguide vorsichtig, das wirst du sehen description
ist kein Feld, das auf der Eintragsebene zurückgegeben wird, sondern nur auf der Feed-Ebene.
Dazu müssen Sie den Feed im XML-Format anfordern und dann die einzelnen Knoten laden, einschließlich description
.Hier ist der relevante Ausschnitt, den ich dazu verwendet habe – Formatierung usw. ändern.wie du es brauchst.
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;
}
Andere Tipps
Die HTML-Beschreibung kann mithilfe der Inhaltsvariablen abgerufen werden.Sie sollten also Folgendes haben:div.appendChild(document.createTextNode(entry.content));
Beachten Sie, dass dadurch das HTML-Datenformat abgerufen wird.
Nach langem Suchen habe ich herausgefunden, dass die Google API „contentSnippet“ anstelle von Beschreibung verwendet.Keine XML-Formatierung erforderlich.
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;
Eintrag.Titel ändern in:
div.appendChild(document.createTextNode(entry.title));
zur Eintragsbeschreibung.