¿Cómo obtener la etiqueta src de la imagen?

c# html-agility-pack xml xpath

Pregunta

Estoy tratando de obtener la propiedad src de una etiqueta img . El problema es que no obtengo src de la imagen, sino una cadena vacía. En cambio, si elimino //img/@src , veo el contenido de a etiqueta (imagen). ¿Cuál es el problema? Vi otra pregunta similar, pero ninguna solución ofrecida funcionó para mí.

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

este es mi codigo

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

Respuesta aceptada

prueba algo como esto

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

Respuesta popular

No puedes seleccionar un atributo directamente. GetAttributeValue() seleccionar un elemento y luego llamar a 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"));

Si desea asegurarse de que el elemento tenga ese atributo, use img[@src] .




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué