我正在创建一个小的RSS阅读器应用程序。
我用来获取xml的代码如下:
void PhonePage1_Loaded(object sender, RoutedEventArgs e)
{
WebClient wc = new WebClient();
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);
wc.OpenReadAsync(new Uri("http://www.benchmark.pl/rss/aktualnosci-pliki.xml"));
}
void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
SyndicationFeed feed;
using (XmlReader reader = XmlReader.Create(e.Result))
{
feed = SyndicationFeed.Load(reader);
NewsFeed.ItemsSource = feed.Items;
}
}问题是xml模板不适合SyndicationFeed文件中的模板。不知何故,我需要编辑模板,以便正确插入文本。我该怎么做呢?
发布于 2012-12-14 00:47:55
通过使用SyndicationFeed,您必须使用它定义的对象。但是,将其转换为更能反映您的XML的内容会很容易。
假设你有一个这样的类:
class MyFeedItem
{
public string Title { get; set; }
public Uri Link { get; set; }
public string Description { get; set; }
public DateTimeOffset PubDate { get; set; }
}您可以将SyndicationFeed项转换为它,如下所示:
private void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
SyndicationFeed feed;
using (XmlReader reader = XmlReader.Create(e.Result))
{
feed = SyndicationFeed.Load(reader);
NewsFeed.ItemsSource = ParseFeed(feed);
}
}
private static IEnumerable<MyFeedItem> ParseFeed(SyndicationFeed feed)
{
return feed.Items.Select(item => new MyFeedItem
{
Title = item.Title.Text,
Link = item.Links.First().Uri,
Description = item.Summary.Text,
PubDate = item.PublishDate
});
}https://stackoverflow.com/questions/13863885
复制相似问题