У меня есть этот бит html, который мне нужно разобрать, хотя
<p class="feature_list">
<img src="candy.gif" alt="candy" title="candy"/>
x 3
<img src="lollies.gif" alt="lollies" title="lollies"/>
1
<img src="system.gif" alt="system" title="system"/>
x 1
<img src="phone.gif" alt="phone" title="phone"/>
x 1
</p>
Как вы можете видеть, есть изображение, а затем текст, похожий на «x 3» рядом с ним.
Я хочу сделать это через каждый образ и записать текст рядом с ним. Однако текст находится за пределами тега «img».
Мне было интересно, есть ли способ сделать это, используя пакет гибкости HTML?
Следующий код:
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 (например,
).