从Windows手机上的RSS提要中提取图像链接

时间:2011-10-29 08:47:37

标签: windows-phone-7.1 windows-phone-7

我有一个问题。

如何从rss-feed中提取网址?

我需要提取的字符串是这样的:

><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="screen2" src="http://hereisthelink/screen2.png" alt="screen2" width="261" height="434" border="0" />

这是在我的自助主页wordpress-blog的rss Feed中,位于<content:encoded>部分。

我想获取一个条目的第一个图像,以便在我的ListBox中将它与标题(这可以)一起使用。

但是我尝试了许多方法来实现这一点,但没有任何作用。

我正在使用Silverlight 3的Syndication.dll来提取Feed项。

此刻,我正站在墙前,为此解决。

我愿意接受任何建议。

2 个答案:

答案 0 :(得分:0)

您可以使用HTML Agility pack http://htmlagilitypack.codeplex.com/有一个适用于Windows Phone的版本(主干中的HAPPhone)。从帖子内容中获取文档后,您可以获得第一个img元素子项。

var firstimage = document.DocumentNode.Descendants("img").FirstOrDefault();

答案 1 :(得分:0)

这样的事情对你有用:

var document = XDocument.Parse(html);
var items = new List<Item>();
var channel = (XContainer) document.Root.FirstNode;
foreach (XElement item in channel.Nodes())
{
    try
    {
        var item = new Item();
        var nodes = item.Nodes().ToArray();
        foreach (XElement keyValue in nodes)
        {
            var value = keyValue.Value.Trim('\r', '\t', '\n', ' ').ToLower();
            switch (keyValue.Name.LocalName)
            {
                case "title": item.Title = value; break;
                case "content:encoded": item.Content = value; break;

                // TODO: add more fields
            }
        }

        var match = Regex.Match(item.Content, "<img(.*?) src=\"(.*?)\"[^>]*>");
        item.FirstImageUrl = match.Groups[2].Value;
    }
    catch
    {
        // TODO: handle exception
    }
}
return items; 

您只需完成switch语句并创建Item类。

相关问题