HTMLAgilityPack解析InnerHTML

时间:2009-08-28 10:22:50

标签: c# html-agility-pack

<div>
<b>Token1</b>
Token2
<b>Token3</b>
</div>

我尝试从div中提取Token2

我设法让Token1和Token3得到:

HtmlNodeCollection headerFooter = doc.DocumentNode.SelectNodes("//div//b");

如何使用HTMLAgilityPack直接提取Token2?

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

1 个答案:

答案 0 :(得分: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();