Как получить только внутренний текст без дочерних тегов, используя 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();