克服HTMLAgility包中的歧义(Windows Phone 7)

时间:2013-01-07 16:15:12

标签: c# windows-phone-7 html-agility-pack

我试图使用以下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吗?如果是这样,请通过指定如何更具体来帮助我。

1 个答案:

答案 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");