Come ottenere il tag src dall'immagine?

c# html-agility-pack xml xpath

Domanda

Sto cercando di ottenere la proprietà src da un tag img . Il problema è che non ottengo src dell'immagine, ma una stringa vuota. Invece se rimuovo //img/@src vedo il contenuto di a tag (immagine). Qual è il problema? Ho visto altre domande simili, ma nessuna soluzione ha funzionato per me.

<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>

questo è il mio codice:

var shieldHomeContainer = nodeCollection.SelectSingleNode("//div[@class='container left']//div[@class='logo']//a//img/@src");

Risposta accettata

provare qualcosa di simile

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

Risposta popolare

Non è possibile selezionare direttamente un attributo. È necessario selezionare un elemento e quindi chiamare 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"));

Se vuoi assicurarti che l'elemento abbia img[@src] , usa img[@src] .




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché