Текст парсится в хаотичном порядке, одно слово на первой строке, второе на 2 и т.д. В оригинале это все идет в одну строку с небольшим отступом. Как убрать все пробелы и сделать нормальный вывод текста? c#
Как я понял, нужно выбрать и объединить содержимое текстовых узлов.
var sb = new StringBuilder();
foreach (var node in htmlDoc.DocumentNode.Descendants().OfType<HtmlTextNode>())
if (!string.IsNullOrWhiteSpace(node.Text))
sb.Append(node.Text.Trim()).Append(' ');
sb.Remove(sb.Length - 1, 1);
Вариант с LINQ:
var textNodes = htmlDoc.DocumentNode
.Descendants()
.OfType<HtmlTextNode>()
.Select(n => n.Text.Trim())
.Where(s => !string.IsNullOrWhiteSpace(s));
var result = string.Join(" ", textNodes);
Вместо DocumentNode возьмите нужный узел.
Возможно, Trim не нужен (зависит от содержимого). Возможно, не нужны проверки IsNullOrWhiteSpace (также зависит от содержимого).
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости