Анализ HTMLAgilityPack в InnerHTML

c# html-agility-pack

Вопрос

<div>
<b>Token1</b>
Token2
<b>Token3</b>
</div>

Я пытаюсь извлечь Token2 из div

Мне удается получить Token1 и Token3 с:

HtmlNodeCollection headerFooter = doc.DocumentNode.SelectNodes("//div//b");

Как я могу напрямую извлечь Token2 с помощью HTMLAgilityPack?

Один грязный вариант - заменить Token1 и Token2 на string.empty в doc.DocumentNode.SelectNodes ("// div"). InnerText, но я думаю, что это можно сделать более чистым способом с помощью HTMLAgilityPack ...

Ответ эксперта

Текст находится в текстовых узлах; поэтому вы должны иметь возможность посмотреть «// div / text ()» и объединить:

StringBuilder sb = new StringBuilder();
foreach (HtmlAgilityPack.HtmlTextNode node in
      doc.DocumentNode.SelectNodes("//div/text()"))
{
    sb.Append(node.Text.Trim());
}
string s = sb.ToString();


Related

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