时近年关,手头的事情渐渐进入尾声,最近一段时间一直忙碌于windows8应用程序的开发,突然想到作为只能客户端的一员手机也充当着重要的角色,为什么不能出一个基于WP7系统的应用呢,于是乎创建了这个基于WP7的RSS阅读器,因为不善于页面的美化,所以Copy了官方windows8事例的界面设计。整个程序完成后页面如下图所示.
在制作的过程中,遇到了一些问题,至今仍无法解决,这里将有问题的代码贴出来,希望得到专业人士的帮助,能帮我解决这个问题。
private void GetFeedAsync(object uri) { #region WebClient var webClient = new WebClient(); webClient.OpenReadCompleted += (sender, args) => { if (args.Error == null && !args.Cancelled) { var stream = args.Result; if (stream.CanRead) { using (var sr = new StreamReader(stream, UnicodeEncoding.UTF8)) { var builder = new StringBuilder(); string tempStr; while ((tempStr = sr.ReadLine()) != null) { tempStr = tempStr.Replace((char)0x1F, ' '); builder.Append(tempStr); } var ms = new MemoryStream(Encoding.UTF8.GetBytes(builder.ToString())); using (var xmlReader = XmlReader.Create(ms)) { try { // 该行出现异常,异常信息为:Data at the root level is invalid var feeds = SyndicationFeed.Load(xmlReader); var feedData = new FeedData(); feedData.Id = new Uri(feeds.Id); feedData.Description = feeds.Description.Text; feedData.PubDate = feeds.LastUpdatedTime.DateTime; feedData.Title = feeds.Title.Text; foreach (var feedItem in feeds.Items) { var item = new FeedItem(); item.Author = feedItem.Authors[0].Name; item.Content = feedItem.Summary.Text; item.Link = feedItem.Links[0].Uri; item.PubDate = feedItem.PublishDate.DateTime; item.Title = feedItem.Title.Text; feedData.Items.Add(item); } _feeds.Add(feedData); } catch (Exception ex) { } } } } } }; webClient.OpenReadAsync((Uri)uri); #endregion }
在代码运行的过程中,总是会出现注释中出现的问题,故发布出来希望能得到大家的指导。谢谢
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>