当前位置: 移动技术网 > IT编程>开发语言>.net > .net读取Rss转换为DataTable

.net读取Rss转换为DataTable

2017年12月12日  | 移动技术网IT编程  | 我要评论
最近需要用asp.net(c#)接收一个rss。rss是自己论坛的数据,而rss是又在item中加了一个子项。所以写了一个通用的读取rss的代码,以后即时再增加或者删除it

最近需要用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;
        }

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网