<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以更干净的方式完成...
答案 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();