.net读取Rss转换为DataTable
最近需要用asp.net(c#)接收一个rss。rss是自己论坛的数据,而rss是又在item中加了一个子项。所以写了一个通用的读取rss的代码,以后即时再增加或者删除items中的子项,此代码也是可以辨认的。
嗯……贴代码,记录一下吧。
读取rss返回datatable
/// <summary>
/// 获rss并转换为datatable返回
/// </summary>
/// <param name="filepath">rss地址</param>
/// <returns></returns>
public static datatable getrss(string filepath)
{
datatable dt = new datatable();
webclient wc = new webclient();
stream srcontent = wc.openread(filepath);
streamreader sr = new streamreader(srcontent);
if (!sr.endofstream)
{
xmldocument xmldoc = new xmldocument();
xmldoc.load(sr);
xmlnodelist xnl = xmldoc.selectnodes("rss/channel/item");
if (xnl.count > 0)
{
{//为datatable添加列标识开始
xmlnode xncolumn = xnl[0];
xmlnodelist columnsnode = xncolumn.childnodes;
foreach (xmlnode xn in columnsnode)
{
datacolumn dc = new datacolumn(xn.name);
dt.columns.add(dc);
}
}//为datatable添加列标识结束
{//为datatable添加行数据
foreach (xmlnode xndate in xnl)
{
datarow dr = dt.newrow();
for (int i = 0; i < dt.columns.count; i++)
{
xmlnode itemvalue = xndate.selectsinglenode(dt.columns[i].columnname);
dr[i] = itemvalue.innertext;
}
dt.rows.add(dr);
}
}//为datatable添加列数据
}
}
return dt;
}