¿Usando HTML Agility Pack para obtener texto al lado de la imagen?

c# c#-4.0 html-agility-pack web-scraping

Pregunta

Tengo este bit de html que necesito analizar aunque

<p class="feature_list">

<img src="candy.gif" alt="candy" title="candy"/>&nbsp;
                        x 3&nbsp;&nbsp;
<img src="lollies.gif" alt="lollies" title="lollies"/>&nbsp;
                        1&nbsp;&nbsp;
<img src="system.gif" alt="system" title="system"/>&nbsp;

                        x 1&nbsp;&nbsp;
<img src="phone.gif" alt="phone" title="phone"/>&nbsp;
                        x 1&nbsp;&nbsp;
</p>

Como puedes ver, hay una imagen y luego un texto como "x 3" al lado.

Lo que quiero hacer es ir a través de cada imagen y grabar el texto al lado. Sin embargo, el texto está fuera de la etiqueta 'img'.

Me preguntaba si hay alguna forma de hacer esto usando el paquete de agilidad HTML.

Respuesta aceptada

El siguiente código:

    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
    doc.Load(yourHtml);

    foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//img"))
    {
        Console.WriteLine(HtmlEntity.DeEntitize(node.NextSibling.InnerText).Trim());
    }

Saldrá:

x 3
1
x 1
x 1

Tenga en cuenta la utilidad HtmlEntity que facilita el manejo de las entidades HTML (como &nbsp; )



Related

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é