2013-09-22 88 views
0

我试图从一个IMG节点提取两个属性,但有一个NullReferenceException,突出显示的行不工作,我想不通为什么:获取多个属性

var imageCollection = doc.DocumentNode.Descendants("img"); 
foreach (HtmlNode imageNode in imageCollection) 
{ 
    var imageLink = imageNode.Attributes["src"].Value; 
    var something=imageNode.Attributes["alt"].Value; // !!! 

    if (Regex.IsMatch(imageLink, "1280.jpg")) 
    { 
     urls.Add(imageLink); 
     //Date.Add(something); 
    } 
} 

和html代码:

<img src="imageurl" alt="http://bbc.in/ZWwFHt" width="610" height="610"> 

回答

3

您的某些图片没有alt属性。检查它是否为空。

var alt = imageNode.Attributes["alt"]; 
if(alt!=null) 
{ 
    var something = alt.Value; 
} 
+0

感谢您的回答,但我'得到一个错误说HtmlagilityaPack不包含定义值... –

+0

@GregoireDumas一个错字。我编辑了答案。它应该是“价值”而不是“价值”。 – I4V

+0

我不知道为什么我错过了,谢谢 –