如何從圖像中獲取src標籤?

c# html-agility-pack xml xpath

我正在嘗試從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");

一般承認的答案

嘗試這樣的事情

var shieldHomeContainer = nodeCollection.SelectSingleNode("//img").Attributes["src"].Value;

熱門答案

您無法直接選擇屬性。您需要選擇一個元素,然後調用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]




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因