Ho una pagina HTML come sotto. Ho bisogno di prendere il 'blah blah blah' solo dal tag 'span'.
<span class="news">
blah blah blah
<div>hello</div>
<div>bye</div>
</span>
Questo mi dà tutti i valori:
div.SelectSingleNode(".//span[@class='news']").InnerText.Trim();
Questo mi dà nulla:
div.SelectSingleNode(".//span[@class='news']/preceding-sibling::text()").InnerText.Trim();
Come faccio a ottenere il testo prima del tag 'div' usando HtmlAgilityPack?
Il tuo secondo tentativo è stato abbastanza vicino. Usa /text()
invece di /preceding-sibling::text()
, perché il nodo di testo è figlio dello span[@class='news']
non fratello (né precedente né successivo):
div.SelectSingleNode(".//span[@class='news']/text()")
.InnerText
.Trim();