字符过滤问题

whowhen21 2009-10-28 06:59:26
我用Winform 读取标准RSS源,但是有些RSS源中含有的不是节点的<abc>这样的内容,这时候就会报错了,请问如何避免或者处理这样的字符啊。。请教了

比如一个正常的节点的InnerText 为<abc>,读取的时候会报错,如何解决,期待。。。。
...全文
49 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2009-10-28
  • 打赏
  • 举报
回复
public static DataTable ReadRss(string RssURL)
{
DataTable Dt = new DataTable();
DataColumn Title = new DataColumn("Title", typeof(string));
DataColumn Author = new DataColumn("Author", typeof(string));
DataColumn PubDate = new DataColumn("PubDate", typeof(string));
DataColumn Link = new DataColumn("Link", typeof(string));
Dt.Columns.Add(Title);
Dt.Columns.Add(Author);
Dt.Columns.Add(PubDate);
Dt.Columns.Add(Link);
System.Net.WebRequest myRequest = System.Net.WebRequest.Create(RssURL);
System.Net.WebResponse myResponse = myRequest.GetResponse();
System.IO.Stream rssStream = myResponse.GetResponseStream();
System.Xml.XmlDocument rssDoc = new System.Xml.XmlDocument();
rssDoc.Load(rssStream);
System.Xml.XmlNodeList rssItems = rssDoc.SelectNodes("rss/channel/item");
for (int i = 0; i < rssItems.Count; i++)
{
DataRow Row = Dt.NewRow();
System.Xml.XmlNode rssDetail;
rssDetail = rssItems.Item(i).SelectSingleNode("title");
if (rssDetail != null)
{
Row["Title"] = rssDetail.InnerText;
}
else
{
Row["Title"] = "";
}
rssDetail = rssItems.Item(i).SelectSingleNode("author");
if (rssDetail != null)
{
Row["Author"] = rssDetail.InnerText;
}
else
{
Row["Author"] = "";
}
rssDetail = rssItems.Item(i).SelectSingleNode("pubDate");
if (rssDetail != null)
{
Row["PubDate"] = Convert.ToDateTime(rssDetail.InnerText).ToString("yyyy年MM月dd日");
}
else
{
Row["PubDate"] = "";
}
rssDetail = rssItems.Item(i).SelectSingleNode("link");
if (rssDetail != null)
{
Row["Link"] = rssDetail.InnerText;
}
else
{
Row["Link"] = "";
}
Dt.Rows.Add(Row);
}
return Dt;
}
或用实体类

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧