{
Topic t = new Topic(m[i].Groups["ID"].Value
, m[i].Groups["topic"].Value
, m[i].Groups["user"].Value
, m[i].Groups["Points"].Value
, m[i].Groups["Replies"].Value
, m[i].Groups["ReplayTime"].Value);i
}
这里,我建了一个Topic类去保存帖子的各项属性,以方便对帖子列表显示进行控制。比如对于新贴子用一个特别的图标表示:
if (int.Parse(t.Replies) == 0)
item1.ImageKey = "NewTopic";
二、 看帖
打开任一帖子的html代码,可以发现它实际上是一个XML文件,这时就需要使用XSLT。
小知识:什么是XSLT ?
XSLT的英文标准名称为eXtensible Stylesheet Language Transformation(可扩展样式表语言转换)。XSLT可以将源 XML 文档的内容转换为另一个格式或结构不同的文档。
由于篇幅有限,这里我就不具体介绍XSLT,其相关信息读者可以查看MSDN。另外, VS.NET2005编辑器支持调试XSLT,可以随时查看转换效果。
调用XSL的代码如下:
XmlDocument xml = new XmlDocument();
//加载帖子的XML源代码
xml.LoadXml(strHTML);
XslCompiledTransform xslt = new XslCompiledTransform();
//加载XSLT
xslt.Load(Application.StartupPath.Replace(@"\", @"\\") + @"\\csdn.xsl");
//转换后输出到字符串
System.IO.StringWriter writer = new System.IO.StringWriter();
xslt.Transform(xml, null, writer);
strHtml = writer.ToString();
//最后将转换后的HTML显示到WebBrowser控件,IE为控件名
this.IE.Document.Write(strHtml);
三、 回帖
看贴一定要回帖。同样要使用HttpWebRequest/ HttpWebResponse类,但是这时是向服务器发送数据,需要在使用GetResponse创建HttpWebResponse对象之前先向HttpWebRequest对象写入需要发送的数据,代码如下:
//设置请求为Post
request.COntentType= "application/x-www-form-urlencoded";
request.Method = "POST";
//将发送的数据转换成byte数组
byte[] b = encoding.GetBytes(PostData);
//将数据写入到HttpWebRequest对象
request.COntentLength= b.Length;
System.IO.Stream sw =request.GetRequestStream();
sw.Write(b, 0, b.Length);
sw.Close();
小结
这里介绍的只是CSDN Reader的基本功能。读者可以到http://feiyun0112.cnblogs.com/下载最新的源代码。我会不断的完善和更新,希望大家多提宝贵的意见和建议。
刊登于 电脑报2006年11月6日 第44期