2011-10-29 38 views
0

我有一個問題。從windows手機上的RSS源提取圖像鏈接

如何從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" /> 

這是我的自我hostet的WordPress,博客的RSS源,在<content:encoded>區間內。

我想獲取一個條目的第一個圖像,以將它與標題(此作品)放在我的ListBox中。

但我嘗試了很多事情來實現這一點,但沒有任何工作。

我正在使用Silverlight 3的Syndication.dll來提取供稿項目。

目前,我真的站在牆前來解決這個問題。

我願意接受任何建議。

+0

如果你可以將你的rss feed轉換爲客戶端的一個字符串,那麼你只需要解析它就可以得到你的圖像。 – BigL

+0

也許這個鏈接可以幫助您: http://stackoverflow.com/questions/319591/reading-non-standard-elements-in-a-syndicationitem-with-syndicationfeed – BigL

+0

我檢查了您的鏈接。這不是我正在尋找的。我想收集一個隨機生成的URL到圖像,將圖像綁定到這個URL。目前我正在玩RegEx來解決這個問題。任何想法呢? Thx – MSicc

回答

0

您可以使用HTML敏捷包http://htmlagilitypack.codeplex.com/有一個適用於Windows Phone(中繼線中的HAPPhone)的版本。從文章內容獲取文檔後,您可以獲取它們的第一個img元素子元素。

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

。我目前正在研究它,但在codeplex中沒有關於它的文檔。必須多搜索一下我的想法。 – MSicc

+0

源代碼中的示例相當不錯 – MatthieuGD

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

+0

好的,它使用我在上面發佈的html。但是,如果我將變量更改爲我的rss-feed url,則此操作無效。任何想法? – MSicc

+0

你能發佈RSS提要網址嗎?然後,我可以爲你的問題量身定製正則表達式... –

+0

可能的問題:正則表達式區分大小寫,也許你有'IMG'而不是'img'標籤。也許你用'而不是' –