在線實現RSS閱讀器

一、經過XmlDocument類實現RSS信息獲取javascript

/// <summary>
/// 得到要顯示的Feed種子數據
/// </summary>
/// <param name="RssUrl"></param>
/// <param name="showNewsCount"></param>
/// <returns></returns>
public string LoadRSS(string RssUrl, int showNewsCount)
{
string strRssList = "";
string strMsg;
try
{
XmlDocument objXMLDoc = new XmlDocument();
objXMLDoc.Load(RssUrl); //加載XML文檔
XmlNodeList objItems = objXMLDoc.GetElementsByTagName("item");//獲取全部匹配的元素
if (showNewsCount > 30)
showNewsCount = 10; //只顯示10條記錄
if (showNewsCount < 1)
showNewsCount = objItems.Count;
string title = "";
string link = "";
int i;
if (objXMLDoc.HasChildNodes == true) //該文檔有子節點
{
i = 1;
foreach (XmlNode objNode in objItems) //循環全部元素
{
if (i <= showNewsCount)
{
if (objNode.HasChildNodes == true)
{
XmlNodeList objItemsChild = objNode.ChildNodes; //獲得當前元素的全部子節點
foreach (XmlNode objNodeChild in objItemsChild)
{
switch (objNodeChild.Name)
{
case "title":
title = objNodeChild.InnerText;
break;
case "link":
link = objNodeChild.InnerText;
break;
}
}
i = i + 1;
strRssList += "<a href=" + link + " target=_blank>" + title + "</a><br>";
}
}
}
}
strMsg = strRssList;
}
catch
{
strMsg = "RSS Feed 源數據出錯!";
}
return strMsg;
}

二、經過XMLHTTP無刷新更新在線RSS閱讀獲取html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>無刷新動態更新的在線RSS閱讀獲取</title>
<script type="text/javascript">
var oDiv;
var xh = null;
function getXML() {
try {
xh = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
xh = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (oc) {
xh = null
}
}
if (!xh && typeof XMLHttpRequest != "undefined") {
xh = new XMLHttpRequest();
}
oDiv = document.getElementById("rssitem");
oDiv.style.display = "";
try {
//若是是本地改爲下面語句直接讀取
xh.open("GET", "03-R***ss.xml", false);
xh.send(null);
loadData(xh, oDiv);
}
catch (e) {
error(oDiv, xh);
}
}
function loadData(xh, oDiv) //解析XML數據
{
if (xh.readyState == 4) //已完成
{
xml = xh.responsexml;
var i;
var nodes = xml.selectNodes("/rss/channel/item"); //查詢子節點
var bloglink = xml.selectSingleNode("/rss/channel/link").text; //單個節點
oDiv.innerHTML = "";
var html;
for (i = 0; i < nodes.length; i++) {
html += "<div >";
html += "    <div >";
html += "        <a class=font1 href='" + nodes[i].selectSingleNode("link").text + "' target='_blank'>" + nodes[i].selectSingleNode("title").text + "</a><BR><BR>";
html += "    </div>";
html += "    <div >";
html += "        " + nodes[i].selectSingleNode("description").text;
html += "    </div>"
html += "</div><hr>";
}
oDiv.innerHTML = html;
}
else {
error(oDiv, xh);
}
}
function error(oDiv, xh) //錯誤處理
{
alert(xh.readyState);
if (xh.readyState == 4) {
if (xh.status == 200) {
oDiv.innerHTML = "完成"
}
else {
oDiv.innerHTML = "抱歉,裝載數據失敗。緣由:" + xh.statusText
}
}
else {
oDiv.innerHTML = "載入失敗。緣由:";
}
}
</script>
</head>
<body onload="window.setTimeout('getXML()',200);">
<div align="center">
<table cellpadding="0" cellspacing="0" border="0" width="80%">
<tr>
<td>
<div id="rssitem" style="width: 80%">
</div>
</td>
</tr>
</table>
</div>
</body>
</html>
相關文章
相關標籤/搜索