我试图使用以下xpath获取特定节点的InnerText
/html/body/center/table/tbody/tr[5]/td[3]/font/font/span
通过使用以下
doc.DocumentNode.SelectSingleNode("/html/body/center/table/tbody/tr[5]/td[3]/font/font/span").InnerText
但是它正在返回带有以下xpath的InnerText
/html/body/center/form/table/tbody/tr[5]/td[3]/font/font/span
我犯了什么错吗?我必须更具体地使用Xpath吗?如果是这样,请通过指定如何更具体来帮助我。
答案 0 :(得分:2)
您正在遇到有关处理标记以修复错误编写的HTML的已知行为。 HTML Agility Pack网站上的There is a bug tracking this,幸运的是,有一种解决方法。
HtmlDocument doc = new HtmlDocument();
// v== Add this line before loading a document
HtmlNode.ElementsFlags.Remove("form");
doc.Load("doc.html");