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

发布于 2024-12-12 17:54:15 字数 621 浏览 0 评论 0原文

我有一个问题。

如何从 rss-feed 中提取 url?

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

><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" />

这是在我的 self hostet wordpress-blog 的 rss feed 上的 部分中。

我想获取条目的第一个图像,将其与列表框中的标题(这有效)结合在一起。

然而,我尝试了很多方法来实现这一目标,但没有任何效果。

我正在使用 Silverlight 3 的 Syndicate.dll 来提取提要项。

此刻我真的站在墙前等待解决这个问题。

我愿意接受任何建议。

I have a question.

How can I extract an url from an rss-feed?

The string which I need to extract is something like this:

><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" />

This is on the rss feed of my self hostet wordpress-blog, within the <content:encoded> section.

I want to fetch the first Image of an entry to get it together with the title (this works) in my ListBox.

However I tried many things to achieve this, but nothing works.

I am working with the Syndication.dll of Silverlight 3 to extract the feed items.

At the moment I am standing really in front of a wall for this to solve.

I am open to any suggestions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

雪若未夕 2024-12-19 17:54:15

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

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

You can use HTML Agility pack http://htmlagilitypack.codeplex.com/ There's a version for Windows Phone (HAPPhone in the trunk). After getting a Document from the content of the post you can get the first img element child of them.

var firstimage = document.DocumentNode.Descendants("img").FirstOrDefault();
空城之時有危險 2024-12-19 17:54:15

像这样的事情应该适合您:

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 类。

Something like this should work for you:

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; 

You only have to finish the switch statement and create the Item class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文