【问题标题】:How to get the innertext alone without the child tags using HtmlAgilityPack?如何使用 HtmlAgilityPack 在没有子标签的情况下单独获取内部文本?
【发布时间】:2014-12-13 20:23:47
【问题描述】:

我有一个如下所示的 HTML 页面。我需要单独从“span”标签中取出“blah blah blah”。

<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' 标签之前的文本?

【问题讨论】:

    标签: c# html-agility-pack


    【解决方案1】:

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

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

    【讨论】:

    • 很好的答案,感谢您指出我的错误!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多