Как получить только внутренний текст без дочерних тегов, используя HtmlAgilityPack?

У меня есть HTML-страница, как показано ниже. Мне нужно взять только "бла-бла-бла" из тега "span".

<span class="news">
blah blah blah
<div>hello</div>
<div>bye</div> 
</span>

Это дает мне все значения:

div.SelectSingleNode(".//span[@class='news']").InnerText.Trim();

Это дает мне ноль:

div.SelectSingleNode(".//span[@class='news']/preceding-sibling::text()").InnerText.Trim();

Как получить текст перед тегом 'div' с помощью HtmlAgilityPack?

1 ответ

Решение

Ваша вторая попытка была довольно близка. использование /text() вместо /preceding-sibling::text()потому что текстовый узел является дочерним span[@class='news'] не брат (ни предшествующий, ни следующий):

div.SelectSingleNode(".//span[@class='news']/text()")
   .InnerText
   .Trim();
Другие вопросы по тегам