我正在尝试从img
标记获取src属性。
问题在于我得不到图像的src
,而是一个空字符串。相反,如果我删除//img/@src
,我会看到a
标记(图片)的内容。有什么问题?
我看到了其他类似的问题,但没有为我提供解决方案。
<div class="clearfix">
<div class="container left">
<div class="logo">
<a href="/teams/japan/japan/1348/">
<img src="http://cache.images.core.optasports.com/soccer/teams/150x150/1348.png" alt="Giappone">
</a>
</div>
</div>
这是我的代码:
var shieldHomeContainer = nodeCollection.SelectSingleNode("//div[@class='container left']//div[@class='logo']//a//img/@src");
答案 0 :(得分:3)
尝试这样的事情
var shieldHomeContainer = nodeCollection.SelectSingleNode("//img").Attributes["src"].Value;
答案 1 :(得分:1)
您无法直接选择属性。您需要选择一个元素,然后调用GetAttributeValue()
。
var h=new HtmlAgilityPack.HtmlDocument();
h.LoadHtml(@"
<div class=""clearfix"">
<div class=""container left"">
<div class=""logo"">
<a href = ""/teams/japan/japan/1348/"" >
<img src=""something"" alt=""Giappone"">
</a>
</div>
</div>");
var img = h.DocumentNode.SelectSingleNode(
"//div[@class='container left']//div[@class='logo']//a//img");
Debug.WriteLine(img.GetAttributeValue("src","nothing"));
如果您想确保该元素具有该属性,请使用img[@src]
。