Добрый день! Изучаю парсеры. Столкнулся с проблемой, что при:
HtmlNodeCollection ticketNodes = doc.DocumentNode.SelectNodes("//*
[@class='ticket']");
HtmlNodeCollection numbersNodes = null;
numbersNodes = ticketNodes[0].SelectNodes("//*[@class='numbers']");
в numbersNodes выбираются все значения, подходящие под заданное условие, из всей коллекции ticketNodes, в количестве 36 штук. Хотя, если к примеру выводить на экран ticketNodes[0], то выводится только 6 numbers, как и должно быть. Так и должно быть? В итоге мне нужен массив numbersNodes[6]. Но из-за того, что выбираются полностью все значения, то в каждом элементе массива находится одно и тоже.
Ну вроде вы получаете то, что заказывали.
XPath //*[@class='numbers'] означает поиск всех элементов с нужным значением атрибута во всём документе, начиная с корня. (Вот примеры того, что означают различные XPath-выражения: XPath Examples@MSDN).
Вероятно, вы хотели написать .//*[@class='numbers']?
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники