读取Rss并返回DataTable
时间:2010-09-30 来源:庄周梦蝶
不知道网上有没有现成的代码
最近需要用asp.net(c#)写一个Rss的接受。
接受的是自己论坛的Rss
而Rss是又在Item中加了一个子项。
所以写了一个通用的读取Rss的代码,以后即时再增加或者删除Items中的子项,此代码也是可以辨认的。
嗯……贴代码,记录一下吧。
读取Rss返回DataTable1 /// <summary>
2 /// 获Rss并转换为DataTable返回
3 /// </summary>
4 /// <param name="filePath">Rss地址</param>
5 /// <returns></returns>
6 public static DataTable GetRss(string filePath)
7 {
8 DataTable dt = new DataTable();
9 WebClient wc = new WebClient();
10 Stream srContent = wc.OpenRead(filePath);
11
12 StreamReader sr = new StreamReader(srContent);
13 if (!sr.EndOfStream)
14 {
15 XmlDocument xmlDoc = new XmlDocument();
16 xmlDoc.Load(sr);
17 XmlNodeList xnl = xmlDoc.SelectNodes("rss/channel/item");
18 if (xnl.Count > 0)
19 {
20 {//为dataTable添加列标识开始
21 XmlNode xnColumn = xnl[0];
22 XmlNodeList columnsNode = xnColumn.ChildNodes;
23 foreach (XmlNode xn in columnsNode)
24 {
25 DataColumn dc = new DataColumn(xn.Name);
26 dt.Columns.Add(dc);
27 }
28 }//为dataTable添加列标识结束
29
30 {//为DataTable添加行数据
31 foreach (XmlNode xnDate in xnl)
32 {
33 DataRow dr = dt.NewRow();
34 for (int i = 0; i < dt.Columns.Count; i++)
35 {
36 XmlNode itemValue = xnDate.SelectSingleNode(dt.Columns[i].ColumnName);
37 dr[i] = itemValue.InnerText;
38 }
39 dt.Rows.Add(dr);
40 }
41 }//为DataTable添加列数据
42 }
43 }
44 return dt;
45 }
相关阅读 更多 +