如何在没有使用HtmlAgilityPack的子标签的情况下单独获取innertext?

goo*_*now 6 c# html-agility-pack

我有一个HTML页面,如下所示.我需要单独从'span'标签中取出'blah blah blah'.

<span class="news">
blah blah blah
<div>hello</div>
<div>bye</div> 
</span>
Run Code Online (Sandbox Code Playgroud)

这给了我所有的价值:

div.SelectSingleNode(".//span[@class='news']").InnerText.Trim();
Run Code Online (Sandbox Code Playgroud)

这给了我null:

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

如何使用HtmlAgilityPack获取'div'标签之前的文本?

har*_*r07 10

你的第二次尝试非常接近.使用/text()替代/preceding-sibling::text(),因为文本节点是孩子的的span[@class='news']同级(无论之前还是之后):

div.SelectSingleNode(".//span[@class='news']/text()")
   .InnerText
   .Trim();
Run Code Online (Sandbox Code Playgroud)