Нормализовать пространство в HtmlAgilityPack

c# html-agility-pack xpath

Вопрос

Вот фрагмент html. Как получить нормализованный текст?

Искать один и тот же фрагмент, но используя Xpath //*[normalize-space()='Text1 Text2']

<div>
    <div>
        <a></a>
        <a></a>
        <div><a><span></span>Text2</a></div>
    </div>
        <div>Text2</div>
</div>

С помощью:

var htmlNodes = htmlDoc.DocumentNode.SelectNodes("*");

foreach (var node in htmlNodes)
{
   text += node.InnerText;
}

Я получаю эту строку:

"\r\n                        \r\n                        \r\n                        \r\n                        \r\n                        Text1\r\n                    Text2"

Могу ли я получить нормальный текст?

"Text1 Text2"

Популярные ответы

InnerText этого вы можете использовать свойство InnerText :

var texts = document.DocumentNode.Descendants("div").Select(n => n.InnerText);

И объедините их, если хотите:

var combined = string.Join(" ", texts);

Чтобы отфильтровать пустые значения:

.Select(n => n.InnerText.Replace("\r\n", "")).Where(s => !string.IsNullOrEmpty(s));


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow