我正在构建 Windows Phone 应用程序并使用 SyndicationFeed
阅读 RSS 提要。我如何从提要中获取图片?
我需要一个转换器吗(?),但我不知道里面会有什么。我看到有一个 ImageUrl
属性,我尝试使用它,但没有任何乐趣。 :(
图片需要与提要一起按类别过滤(这是预定义的)。我知道如何过滤提要(慷慨的论坛成员帮助:)) 只是获取图像是个问题。
我使用 MSDN 示例作为背景:http://msdn.microsoft.com/en-us/library/hh487167(v=vs.92).aspx
我会使用这个正则表达式从提要中获取图像:
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;
});
}
最佳答案
RSS 规范中没有提供表示 <item>
的单个图像的任何内容正在处理。如果你想要一个图像,你可以尝试解析 <content>
元素并从元素内容中提取一个或多个图像。
要从源中获取图像链接,您需要解析文本以获得所有 <img>
的匹配项文本中的标签。您可以尝试通过几种方式来做到这一点。您可以尝试对 img 标签进行 RegEx 匹配,或者您可以尝试将文本加载到 XML 文档中并对其进行解析。问题是,它不是完整的 HTML,因此您可能需要对其进行一些修改(例如,如果内容尚未包含在 <p>
标签中。
关于c# - 使用联合从 RSS 提要获取图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10045089/