我有一个问题。
如何从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项。
此刻,我正站在墙前,为此解决。
我愿意接受任何建议。
答案 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
类。