2014-02-22 200 views
0

使用C#,Xaml和HTMLAgilityPack的Im。如何獲得屬性「alt」的值。如何從Html屬性獲取數據

HTML代碼:

<img src="http://userserve-ak.last.fm/serve/252/87168773.png" alt="Idina Menzel - Let It Go lyrics"   title="Let It Go"/> 

我如何獲得 「伊迪娜門澤爾 - 隨它吧歌詞」。

C#代碼:

var s = doc.DocumentNode.Descendants("img").Where(o => o.Attributes["alt"] != null && o.Attributes["alt"].Value != null); 

try 
{ 
    foreach (HtmlNode childNode in s) 
    { 
      pureText.Append(c + ". "); 
      pureText.Append(childNode); 
      pureText.Append("\n\n"); 
      c++; 
     } 
} 
catch 
{ } 

回答

0

您可以使用[@alt]在XPath來選擇具有alt屬性定義的所有img節點:

var images = doc.DocumentNode.SelectNodes("//img[@alt]"); 
foreach (var img in images) 
{ 
    // img.Attributes["alt"].Value 
} 

串聯有序列表中的所有ALT消息:

images.Select((img,index) => new { index, alt = img.Attributes["alt"].Value }) 
     .Aggregate(new StringBuilder(), 
       (sb,x) => sb.AppendFormat("{0}. {1}\n\n", x.index + 1, x.alt), 
       sb => sb.ToString());