2014-02-22 152 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());