#javascript #xml #html #rss
#javascript #xml #HTML #RSS-канал
Вопрос:
Реализация JS-скрипта для извлечения / анализа XML-канала и возврата содержимого в html. К сожалению, похоже, что это не так, поскольку на странице не отображается ничего, кроме текста (Feed!) Между тегами div.
function loadRSSFeed(param){
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET",'http://feeds.feedburner.com/engadget/Dnjv',false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
var strBuffer= "";
strBuffer = strBuffer "<table border='1'>";
var x=xmlDoc.getElementsByTagName("item");
for (i=0;i<x.length;i ){
strBuffer = strBuffer "<tr><td><a href='";
strBuffer = strBuffer (x[i].getElementsByTagName("link")[0].childNodes[0].nodeValue);
strBuffer = strBuffer "'>";
strBuffer = strBuffer (x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
strBuffer = strBuffer "</a></td></tr><tr><td>";
strBuffer = strBuffer (x[i].getElementsByTagName("description")[0].childNodes[0].nodeValue.substring(0,180));
strBuffer = strBuffer "<a href='";
strBuffer = strBuffer (x[i].getElementsByTagName("link")[0].childNodes[0].nodeValue);
strBuffer = strBuffer "'>... Read More...</a>";
strBuffer = strBuffer "</td></tr>";
if(i==10){
break;
}
}
strBuffer = strBuffer "</table>";
document.getElementById(param).innerHTML =strBuffer;
}
он импортируется следующим образом (успешно):
Затем вызывается в теле
<body onload ="loadRSSFeed('feeddisplay');">
<h1>All the news that's fit to render</h1>
<div id="feeddisplay">Feed!</div>
</body>
Но он не отображается! Остальная часть страницы работает так, как должна…
Мысли?
Ответ №1:
Разве это не должен быть XMLHttp * Запрос *?
Ответ №2:
API для чтения каналов Google более надежный и имеет несколько дополнительных функций для обработки rss
http://code.google.com/apis/feed/v1/
Также я думаю, что onLoad, возможно, не сможет найти div … ? вы пытались выполнить скрипт после загрузки канала div… только мои 2 цента.