我正在构建Windows Phone应用并使用SyndicationFeed
来阅读RSS源。如何从Feed中获取图片?
我是否需要转换器(?),但我不知道会发生什么。我看到有一个ImageUrl
属性,我尝试将其用于使用但没有快乐。 :(
图片需要按类别和Feed(预定义)进行过滤。我知道如何过滤饲料(慷慨的论坛成员帮助:)) 只是得到图像就是问题。
我正在使用MSDN示例作为背景:http://msdn.microsoft.com/en-us/library/hh487167(v=vs.92).aspx
我的Feed:http://www.zimo.co/feed/
我会使用此正则表达式从Feed中获取图像:
Regex rg = new Regex(@"<img.*?src=""(.*?)""", RegexOptions.IgnoreCase);
但问题是如何实现它。所以我同时得到了饲料和图片:(
这是我使用的代码:
private void UpdateFeedList(string feedXML)
{
StringReader stringReader = new StringReader(feedXML);
XmlReader xmlReader = XmlReader.Create(stringReader);
SyndicationFeed feed = SyndicationFeed.Load(xmlReader);
Regex rg = new Regex(@"<img.*?src=""(.*?)""", RegexOptions.IgnoreCase);
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
ls_text.ItemsSource = feed.Items;
});
}
答案 0 :(得分:0)
RSS规范中没有提供表示正在处理的<item>
的单个图像。如果您想拥有一个图像,可以尝试解析<content>
元素并从元素内容中提取一个或多个图像。
要将图片链接从源中删除,您需要解析文本以获得文本中所有<img>
标记的匹配。您可以尝试以两种方式执行此操作。您可以尝试对img标记执行RegEx匹配,或者您可以尝试将文本加载到XML文档中并对其进行解析。问题是,它不是完整的HTML,因此您可能需要对其进行一些修改(例如,您可能必须在内容周围放置一组封闭的标记,如果内容尚未包含由<p>
标记括起来。