時近年關,手頭的事情漸漸進入尾聲,最近一段時間一直忙碌于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>