<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();