阅读rss的其中一个主页面的程序,最近写的,多多指教
2007-01-05 22:17
447 查看
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Threading;
using System.Xml;
using System.Data.OleDb;
public partial class admin_readrss : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string linkxml;
string name;
DateTime times;
Session["count"] = 0;
Session["pass"] = 0;
Session["rsscount"] = 0;
Session["rsspass"] = 0;
try{
linkxml = Request["linkxml"];
name = Request["name"];
times=Convert.ToDateTime(Request["times"]);
reedrss(linkxml,name,times);
//如果没传入url,就是全部的重新更新
}
catch
{
readevery();
}
Response.Write("共更新的blog网站为:"+Session["rsscount"].ToString()+"个<br />");
Response.Write("更新失败的blog为:" + Session["rsspass"].ToString() + "个<br />");
Response.Write("共更新记录:"+Session["count"]+"条 .");
Response.Write("抛弃记录:"+Session["pass"]+"条");
// Thread.Sleep(10000);
}
private XmlNode FoundChildNode(XmlNode Node, string Name)
{
XmlNode childlNode = null;
for (int i = 0; i < Node.ChildNodes.Count; i++)
{
if (Node.ChildNodes[i].Name == Name && Node.ChildNodes[i].ChildNodes.Count > 0)
{
childlNode = Node.ChildNodes[i];
return childlNode;
}
}
return childlNode;
}
protected void readevery()
{
OleDbConnection mycon = DB.CreateDB();
DataSet myset = new DataSet();
string sqlstr="select * from blogrss";
mycon.Open();
OleDbDataAdapter myadt = new OleDbDataAdapter(sqlstr,mycon);
myadt.Fill(myset,"rsses");
for (int i = 0; i < myset.Tables["rsses"].Rows.Count; i++)
{
string xmlstr = myset.Tables[0].Rows[i]["linkxml"].ToString();
string name=myset.Tables["rsses"].Rows[i]["author"].ToString();
DateTime time =Convert.ToDateTime( myset.Tables["rsses"].Rows[i]["lastupdatetime"]);
if (isuse(xmlstr))
{
reedrss(xmlstr, name, time);
Session["rsscount"]=Convert.ToInt32(Session["rsscount"])+1;
}
else
{
Session["rsspass"] = Convert.ToInt32(Session["rsspass"]) + 1;
}
}
mycon.Close();
}
//测试链接是否可用
protected bool isuse(string xmlurl)
{
XmlTextReader Reader = new XmlTextReader(xmlurl);
XmlDocument xmlDoc = new XmlDocument();
try
{
xmlDoc.Load(Reader);
xmlDoc.RemoveAll();
return true;
}
catch (Exception x)
{
xmlDoc.RemoveAll();
return false;
}
}
protected void reedrss(string url,string name,DateTime lastupdate)
{
string URL = url;
int xx=0;//记录是不是第一次读取日期
XmlTextReader Reader = new XmlTextReader(URL);
XmlValidatingReader Valid = new XmlValidatingReader(Reader);
Valid.ValidationType = ValidationType.None;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Reader);
XmlNode rssNode = FoundChildNode(xmlDoc, "rss");
XmlNode channelNode = FoundChildNode(rssNode, "channel");
rss.Channel channel = new rss.Channel();
//------------------------------------------
OleDbConnection mycon = DB.CreateDB();
string sqlstr;
// mycon.Open();
OleDbCommand mycmd = new OleDbCommand();
mycmd.Connection = mycon;
//------------------------------------------
channel.Items = new Hashtable();
int i = 0;
for (i = 0; i < channelNode.ChildNodes.Count; i++)
{
rss.Item itemss;
switch (channelNode.ChildNodes[i].Name)
{
case "title":
{
channel.Title = channelNode.ChildNodes[i].InnerText;
break;
}
case "link":
{
channel.link = channelNode.ChildNodes[i].InnerText;
break;
}
case "item":
{
int j = 0;
itemss.Link = "";
itemss.author = "";
itemss.Description = "";
itemss.guid = "";
itemss.pubDate = "";
itemss.Title = "";
for (j = 0; j < channelNode.ChildNodes[i].ChildNodes.Count; j++)
switch (channelNode.ChildNodes[i].ChildNodes[j].Name.ToString().Trim())
{
case "title":
{
itemss.Title = channelNode.ChildNodes[i].ChildNodes[j].InnerText;
break;
}
case "link":
{
itemss.Link = channelNode.ChildNodes[i].ChildNodes[j].InnerText;
break;
}
case "guid":
{
itemss.guid = channelNode.ChildNodes[i].ChildNodes[j].InnerText;
break;
}
case "pubDate":
{
itemss.pubDate = channelNode.ChildNodes[i].ChildNodes[j].InnerText;
string times=itemss.pubDate;
if (itemss.pubDate.Length > 28)
{
times = itemss.pubDate.Substring(0, itemss.pubDate.Trim().Length - 2).Trim();
}
if (xx == 0)
{
sqlstr = "update blogrss set lastupdatetime=@lastupdatetime where linkxml='" + url + "'";
//sqlstr = "update blogrss set lastupdatetime="+Convert.ToDateTime(itemss.pubDate).ToShortDateString()+" where linkxml='"+url+"'";
//sqlstr = "update blogrss set lastupdatetime="+DateTime.Now.ToShortDateString()+" where linkxml='" + url + "'";
mycon.Open();
mycmd.Parameters.Add("@lastupdatetime", OleDbType.Date);
// mycmd.Parameters["@lasttime"].Value = Convert.ToDateTime(itemss.pubDate);
mycmd.Parameters["@lastupdatetime"].Value = Convert.ToDateTime(times);
mycmd.CommandText = sqlstr;
mycmd.ExecuteNonQuery();
mycon.Close();
}
xx++;
break;
}
case "author":
{
itemss.author = channelNode.ChildNodes[i].ChildNodes[j].InnerText;
break;
}
case "description":
{
itemss.Description = channelNode.ChildNodes[i].ChildNodes[j].InnerText;
break;
}
}
string time123 = itemss.pubDate;
if (itemss.pubDate.Length > 28)
{
time123 = itemss.pubDate.Substring(0, itemss.pubDate.Trim().Length - 2).Trim();
}
if ( Convert.ToDateTime(time123)<=lastupdate)
{
Session["pass"] = Convert.ToInt32(Session["pass"]) + 1;
break;
}
if (itemss.Link == "")
{
itemss.Link = itemss.guid;
}
if (itemss.author == "" || itemss.Description == "" || itemss.Link == "" || itemss.pubDate == "")
{
Session["pass"] = Convert.ToInt32(Session["pass"]) + 1;
break;
}
sqlstr = "insert into artcle(pubDate,title,author,site,description,author_ID)values(@pubDate,@title,@author,@site,@description,'" + name + "')";
mycmd.CommandText = sqlstr;
// mycmd.Connection = mycon;
mycmd.Parameters.Add("@pubDate", OleDbType.Date);
if (itemss.pubDate.Length > 28)
{
string datestr = itemss.pubDate.Substring(0, itemss.pubDate.Length - 6).Trim();
mycmd.Parameters["@pubDate"].Value = Convert.ToDateTime(datestr);
}
else
{
mycmd.Parameters["@pubDate"].Value = Convert.ToDateTime(itemss.pubDate);
}
//1
mycmd.Parameters.Add("@title", OleDbType.LongVarChar);
mycmd.Parameters["@title"].Value = itemss.Title;
//2
mycmd.Parameters.Add("@author", OleDbType.LongVarChar);
mycmd.Parameters["@author"].Value = itemss.author;
//3
// mycmd.Parameters.Add("@pubDate",OleDbType.Date);
//if (itemss.pubDate.Length > 28)
// {
// string datestr = itemss.pubDate.Substring(0, itemss.pubDate.Length - 6).Trim();
// mycmd.Parameters["@pubDate"].Value = Convert.ToDateTime(datestr);
// }
//else
//{
// mycmd.Parameters["@pubDate"].Value = Convert.ToDateTime(itemss.pubDate);
//}
//4
mycmd.Parameters.Add("@site",OleDbType.LongVarChar);
mycmd.Parameters["@site"].Value = itemss.Link;
//5
mycmd.Parameters.Add("@description",OleDbType.VarChar);
mycmd.Parameters["@description"].Value = itemss.Description;
//
mycon.Open();
mycmd.ExecuteNonQuery();
Session["count"] = Convert.ToInt32(Session["count"]) + 1;
mycon.Close();
break;
}
}
}
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Threading;
using System.Xml;
using System.Data.OleDb;
public partial class admin_readrss : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string linkxml;
string name;
DateTime times;
Session["count"] = 0;
Session["pass"] = 0;
Session["rsscount"] = 0;
Session["rsspass"] = 0;
try{
linkxml = Request["linkxml"];
name = Request["name"];
times=Convert.ToDateTime(Request["times"]);
reedrss(linkxml,name,times);
//如果没传入url,就是全部的重新更新
}
catch
{
readevery();
}
Response.Write("共更新的blog网站为:"+Session["rsscount"].ToString()+"个<br />");
Response.Write("更新失败的blog为:" + Session["rsspass"].ToString() + "个<br />");
Response.Write("共更新记录:"+Session["count"]+"条 .");
Response.Write("抛弃记录:"+Session["pass"]+"条");
// Thread.Sleep(10000);
}
private XmlNode FoundChildNode(XmlNode Node, string Name)
{
XmlNode childlNode = null;
for (int i = 0; i < Node.ChildNodes.Count; i++)
{
if (Node.ChildNodes[i].Name == Name && Node.ChildNodes[i].ChildNodes.Count > 0)
{
childlNode = Node.ChildNodes[i];
return childlNode;
}
}
return childlNode;
}
protected void readevery()
{
OleDbConnection mycon = DB.CreateDB();
DataSet myset = new DataSet();
string sqlstr="select * from blogrss";
mycon.Open();
OleDbDataAdapter myadt = new OleDbDataAdapter(sqlstr,mycon);
myadt.Fill(myset,"rsses");
for (int i = 0; i < myset.Tables["rsses"].Rows.Count; i++)
{
string xmlstr = myset.Tables[0].Rows[i]["linkxml"].ToString();
string name=myset.Tables["rsses"].Rows[i]["author"].ToString();
DateTime time =Convert.ToDateTime( myset.Tables["rsses"].Rows[i]["lastupdatetime"]);
if (isuse(xmlstr))
{
reedrss(xmlstr, name, time);
Session["rsscount"]=Convert.ToInt32(Session["rsscount"])+1;
}
else
{
Session["rsspass"] = Convert.ToInt32(Session["rsspass"]) + 1;
}
}
mycon.Close();
}
//测试链接是否可用
protected bool isuse(string xmlurl)
{
XmlTextReader Reader = new XmlTextReader(xmlurl);
XmlDocument xmlDoc = new XmlDocument();
try
{
xmlDoc.Load(Reader);
xmlDoc.RemoveAll();
return true;
}
catch (Exception x)
{
xmlDoc.RemoveAll();
return false;
}
}
protected void reedrss(string url,string name,DateTime lastupdate)
{
string URL = url;
int xx=0;//记录是不是第一次读取日期
XmlTextReader Reader = new XmlTextReader(URL);
XmlValidatingReader Valid = new XmlValidatingReader(Reader);
Valid.ValidationType = ValidationType.None;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Reader);
XmlNode rssNode = FoundChildNode(xmlDoc, "rss");
XmlNode channelNode = FoundChildNode(rssNode, "channel");
rss.Channel channel = new rss.Channel();
//------------------------------------------
OleDbConnection mycon = DB.CreateDB();
string sqlstr;
// mycon.Open();
OleDbCommand mycmd = new OleDbCommand();
mycmd.Connection = mycon;
//------------------------------------------
channel.Items = new Hashtable();
int i = 0;
for (i = 0; i < channelNode.ChildNodes.Count; i++)
{
rss.Item itemss;
switch (channelNode.ChildNodes[i].Name)
{
case "title":
{
channel.Title = channelNode.ChildNodes[i].InnerText;
break;
}
case "link":
{
channel.link = channelNode.ChildNodes[i].InnerText;
break;
}
case "item":
{
int j = 0;
itemss.Link = "";
itemss.author = "";
itemss.Description = "";
itemss.guid = "";
itemss.pubDate = "";
itemss.Title = "";
for (j = 0; j < channelNode.ChildNodes[i].ChildNodes.Count; j++)
switch (channelNode.ChildNodes[i].ChildNodes[j].Name.ToString().Trim())
{
case "title":
{
itemss.Title = channelNode.ChildNodes[i].ChildNodes[j].InnerText;
break;
}
case "link":
{
itemss.Link = channelNode.ChildNodes[i].ChildNodes[j].InnerText;
break;
}
case "guid":
{
itemss.guid = channelNode.ChildNodes[i].ChildNodes[j].InnerText;
break;
}
case "pubDate":
{
itemss.pubDate = channelNode.ChildNodes[i].ChildNodes[j].InnerText;
string times=itemss.pubDate;
if (itemss.pubDate.Length > 28)
{
times = itemss.pubDate.Substring(0, itemss.pubDate.Trim().Length - 2).Trim();
}
if (xx == 0)
{
sqlstr = "update blogrss set lastupdatetime=@lastupdatetime where linkxml='" + url + "'";
//sqlstr = "update blogrss set lastupdatetime="+Convert.ToDateTime(itemss.pubDate).ToShortDateString()+" where linkxml='"+url+"'";
//sqlstr = "update blogrss set lastupdatetime="+DateTime.Now.ToShortDateString()+" where linkxml='" + url + "'";
mycon.Open();
mycmd.Parameters.Add("@lastupdatetime", OleDbType.Date);
// mycmd.Parameters["@lasttime"].Value = Convert.ToDateTime(itemss.pubDate);
mycmd.Parameters["@lastupdatetime"].Value = Convert.ToDateTime(times);
mycmd.CommandText = sqlstr;
mycmd.ExecuteNonQuery();
mycon.Close();
}
xx++;
break;
}
case "author":
{
itemss.author = channelNode.ChildNodes[i].ChildNodes[j].InnerText;
break;
}
case "description":
{
itemss.Description = channelNode.ChildNodes[i].ChildNodes[j].InnerText;
break;
}
}
string time123 = itemss.pubDate;
if (itemss.pubDate.Length > 28)
{
time123 = itemss.pubDate.Substring(0, itemss.pubDate.Trim().Length - 2).Trim();
}
if ( Convert.ToDateTime(time123)<=lastupdate)
{
Session["pass"] = Convert.ToInt32(Session["pass"]) + 1;
break;
}
if (itemss.Link == "")
{
itemss.Link = itemss.guid;
}
if (itemss.author == "" || itemss.Description == "" || itemss.Link == "" || itemss.pubDate == "")
{
Session["pass"] = Convert.ToInt32(Session["pass"]) + 1;
break;
}
sqlstr = "insert into artcle(pubDate,title,author,site,description,author_ID)values(@pubDate,@title,@author,@site,@description,'" + name + "')";
mycmd.CommandText = sqlstr;
// mycmd.Connection = mycon;
mycmd.Parameters.Add("@pubDate", OleDbType.Date);
if (itemss.pubDate.Length > 28)
{
string datestr = itemss.pubDate.Substring(0, itemss.pubDate.Length - 6).Trim();
mycmd.Parameters["@pubDate"].Value = Convert.ToDateTime(datestr);
}
else
{
mycmd.Parameters["@pubDate"].Value = Convert.ToDateTime(itemss.pubDate);
}
//1
mycmd.Parameters.Add("@title", OleDbType.LongVarChar);
mycmd.Parameters["@title"].Value = itemss.Title;
//2
mycmd.Parameters.Add("@author", OleDbType.LongVarChar);
mycmd.Parameters["@author"].Value = itemss.author;
//3
// mycmd.Parameters.Add("@pubDate",OleDbType.Date);
//if (itemss.pubDate.Length > 28)
// {
// string datestr = itemss.pubDate.Substring(0, itemss.pubDate.Length - 6).Trim();
// mycmd.Parameters["@pubDate"].Value = Convert.ToDateTime(datestr);
// }
//else
//{
// mycmd.Parameters["@pubDate"].Value = Convert.ToDateTime(itemss.pubDate);
//}
//4
mycmd.Parameters.Add("@site",OleDbType.LongVarChar);
mycmd.Parameters["@site"].Value = itemss.Link;
//5
mycmd.Parameters.Add("@description",OleDbType.VarChar);
mycmd.Parameters["@description"].Value = itemss.Description;
//
mycon.Open();
mycmd.ExecuteNonQuery();
Session["count"] = Convert.ToInt32(Session["count"]) + 1;
mycon.Close();
break;
}
}
}
}
}
相关文章推荐
- 想设计一个简单的RSS在线阅读程序,欢迎大伙提供意见
- 随便写的一个小程序:将有道阅读导出的rss列表转换成Foxmail的rss兼容的导入文件
- java__晓萌最近在做一个翻转图片的应用,你可能也知道,图片其实是由一个个的点组成的。于是,晓萌想先做一个可以翻转矩阵的程序,来解决他问题的核心部分。
- 整理下最近写java一个小界面程序的知识整理
- 豆瓣九点将永久关闭 又一个RSS阅读工具消失
- RSS阅读量大于页面访问量
- 一个简单的用javascript实现的页面内容过滤显示小程序源码
- 通过Z-BlogPHP程序快速在论坛里搭建一个博客页面
- 【C语言】编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替
- 编写一个程序,从标准输入一行一行地读取文本,并完成如下任务:如果文件中有两行或更多行相邻的文本内容相同,那么就打印其中一行,其余行不打印。
- C#程序只允许运行一个实例的解决方案 分类: .NET 2012-12-15 12:03 438人阅读 评论(0) 收藏
- 使用jQuery开发一个响应式超酷整合RSS信息阅读杂志
- 使用jQuery开发一个响应式超酷整合RSS信息阅读杂志
- 每天一个python小程序 004:任一个英文的纯文本文件,统计其中的单词出现的个数
- 在编辑页面布局,点击其中的一个控件时,不自动定位到页面的代码
- Java程序的一个完整阅读分析
- 因为不想再程序中写循环,因此把UI页面需要更新的纪录的主键组成了一个以","隔开的字符串,将这个字符串传入存储过程中进行处理(转)
- 练习1-10 编写一个将输入复制到输出的程序,并将其中的制表符替换为\t,把回退符替换为\b,把反斜杠替换为\\。
- 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个string stri
- 用C语言编一个程序,有一个二进制串(比如01101011),计算出其中1的个数