Текст парсится в хаотичном порядке, одно слово на первой строке, второе на 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
(также зависит от содержимого).
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не могу сделать C# обертку для enum C++ c помощью SWIGЗначение членов c++ enum, которые я хочу обернуть превосходят максимальное значение для Int32
Разбираюсь со свойствами зависимостиКак я понял, что бы создать свойство зависимости необходимо проделать следующие шаги (сейчас буду их сравнивать...