2013-01-07 45 views
1

我試圖通過使用以下XPath /html/body/center/table/tbody/tr[5]/td[3]/font/font/span 得到一個特定節點將InnerText以下
doc.DocumentNode.SelectSingleNode("/html/body/center/table/tbody/tr[5]/td[3]/font/font/span").InnerText克服HTMLAgility包歧義(Windows Phone 7的)

但是,相反它返回我的innerText與以下xpath /html/body/center/form/table/tbody/tr[5]/td[3]/font/font/span

我是否犯了錯誤?我必須對Xpath更具體嗎?如果是這樣,請通過指定如何更具體地幫助我。

+0

您能否提供HTML文件(或其鏈接)? – jessehouwing

+0

這是到html文檔的鏈接。 http://tneb.tnebnet.org/tariff_new.html –

+0

當您使用SelectNode代替它時,它實際上會返回兩個節點,這是由於HAP中的錯誤/功能造成的。見下文。 – jessehouwing

回答

2

您正遇到一種已知的行爲,即處理標記以修復錯誤編寫的HTML。 HTML敏捷包網站上的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"); 
+0

非常感謝這個解決方法。 –