C# 节点'的文本;s内部文本和第一个子节点文本
我在页面结构中有多个链接,如下所示:C# 节点'的文本;s内部文本和第一个子节点文本,c#,html-agility-pack,C#,Html Agility Pack,我在页面结构中有多个链接,如下所示: <a ....> <b>Text I Need</b> Also Text I need </a> 我是否应该取而代之的不是文本而是a的html,然后用regex删除标记并提取文本,或者是否有其他方法?访问的InnerText属性应立即为您提供所有文本节点: var html = @"<a ....> <b>Text I Need</b> A
<a ....>
<b>Text I Need</b>
Also Text I need
</a>
我是否应该取而代之的不是文本而是a的html,然后用regex删除标记并提取文本,或者是否有其他方法?访问
的InnerText
属性应立即为您提供所有文本节点:
var html = @"<a ....>
<b>Text I Need</b>
Also Text I need
</a>";
var doc = new HtmlDocument();
doc.LoadHtml(html);
var link_list = doc.DocumentNode.SelectNodes("/a");
foreach (var link in link_list)
{
Console.WriteLine(link.InnerText);
}
输出:
Text I Need
Also Text I need
这似乎对我有用。请看奇怪,因为对我来说,它只是给出了不在b标记中的部分,但是从xpath中删除“/text()”解决了它刚刚意识到我的错误是将“/text()”放在xpath中,谢谢。
var link_list = doc.DocumentNode.SelectNodes("/a");
foreach (var link in link_list)
{
var texts = link.SelectNodes("text() | */text()");
Console.WriteLine(String.Join("", texts.Select(o => o.InnerText)));
}
Text I Need
Also Text I need