1、通过XmlDocument类实现RSS信息获取
/// <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; }
2、通过XMLHTTP无刷新更新在线RSS阅读获取
<!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 οnlοad="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>
转载于:https://blog.51cto.com/zhanyah/1322403