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

本文关键字:情况下 单独 innertext 获取 HtmlAgilityPack 何使用 | 更新日期: 2023-09-27 18:27:02

我有一个HTML页面,如下所示。我需要从"跨度"标签中单独去掉"废话"。

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

如何使用HtmlAgilityPack获取"div"标记之前的文本?

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

您的第二次尝试非常接近。使用/text()而不是/preceding-sibling::text(),因为文本节点是span[@class='news'],而不是兄弟(既不在前面也不在后面):

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