Страницы

Поиск по вопросам

суббота, 8 июня 2019 г.

Парсинг безымянных блоков в AngleSharp

Подскажите пожалуйста как из этого блока выбрать только вот это : 8.85 р / шт

дисконт 8.60
8.85 р / шт

Сейчас пробую так: var price = document.Result.QuerySelectorAll(@".price"); Но в результате выводится все, что находится в блоке


Ответ

Я дал вам ссылку на вопрос на enSO, там есть красивый вариант (через чтение AngleSharp'ом безымянных блоков CSS) и мой варварский в вопросе (вырезанием всех "лишних" нод).
В вашем случае начните с чего-то типа:
var parser = new HtmlParser();
var document = parser.Parse(@"

дисконт 8.60
8.85 р / шт
");
var priceBlocks = document.QuerySelectorAll("div.price");
foreach (var block in priceBlocks) { var element = block.ChildNodes.First(o => o.NodeType == AngleSharp.Dom.NodeType.Text && o.TextContent.Trim() != "");
element.Text().Trim().Dump(); }
Linqpad говорит, что вам вполне сойдёт для начала:

Писал наспех, поэтому подразумеваю, что вы понимаете, что такое linq.

Комментариев нет:

Отправить комментарий