c# - 如何使用 HtmlAgilityPack 单独获取没有子标签的内部文本?

标签 c# html-agility-pack

我有一个如下所示的 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();

这给了我空值:

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

如何使用 HtmlAgilityPack 获取“div”标签前的文本?

最佳答案

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

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

关于c# - 如何使用 HtmlAgilityPack 单独获取没有子标签的内部文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26438788/

相关文章:

c# - linq查询中的自动编号

c# - 检索 Python 脚本的返回值

c# - Html Agility Pack SelectSingleNode 在迭代中总是给出相同的结果?

c# - 明确声明默认字段值是一种不好的做法吗?

c# - DataGridView.Datasource = null;错误: Object reference not set to an instance of an object

c# - 亚马逊 API - 顶级客户评论员

c# - 使用 html-agility-pack 查找所有具有数据属性的元素

c# - 使用 HtmlEntity.DeEntitize() 方法的 KeyNotFoundException

c# - 使用 agility pack C# 处理 cookie 和 header

C# HTML 敏捷包,从 div 中提取纯文本