首页 文章

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

提问于
浏览
5

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

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

这给了我所有的 Value :

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

这给了我null:

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

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

1 回答

  • 8

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

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

相关问题