HTMLAgilityPack解析InnerHTML

2 c# html-agility-pack

<div>
<b>Token1</b>
Token2
<b>Token3</b>
</div>
Run Code Online (Sandbox Code Playgroud)

我尝试从div中提取Token2

我设法得到Token1和Token3:

HtmlNodeCollection headerFooter = doc.DocumentNode.SelectNodes("//div//b");
Run Code Online (Sandbox Code Playgroud)

如何使用HTMLAgilityPack直接提取Token2?

一个脏选项是用doc.DocumentNode.SelectNodes("// div")中的string.empty替换Token1和Token2.InnerText,但我想它可以用HTMLAgilityPack以更干净的方式完成...

Mar*_*ell 6

文本在文本节点中; 所以你应该能够看到"// div/text()"并连接:

StringBuilder sb = new StringBuilder();
foreach (HtmlAgilityPack.HtmlTextNode node in
      doc.DocumentNode.SelectNodes("//div/text()"))
{
    sb.Append(node.Text.Trim());
}
string s = sb.ToString();
Run Code Online (Sandbox Code Playgroud)