Используя HTML Agility Pack, чтобы получить текст рядом с изображением? - PullRequest
1 голос
/ 05 июня 2011

У меня есть этот бит HTML, который мне нужно проанализировать, хотя

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

Как видите, рядом с ним изображение, а затем текст, например "x 3".

Я хочу просмотреть каждое изображение и записать текст рядом с ним. Однако текст находится за пределами тега img.

Мне было интересно, есть ли возможность сделать это с помощью пакета гибкости HTML?

1 Ответ

4 голосов
/ 05 июня 2011

следующий код:

    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());
    }

Будет выводить:

x 3
1
x 1
x 1

Обратите внимание на утилиту HtmlEntity, которая упрощает обработку сущностей HTML (например, &nbsp;)

...