0

嘿,我試圖獲得使用下面的代碼維基百科一些文本。但它並沒有返回任何值SelectSingleNodeVB2010 HtmlAgilityPack的SelectSingleNode沒有返回結果

 Dim doc As New HtmlAgilityPack.HtmlDocument 
     Dim web As New HtmlAgilityPack.HtmlWeb 

     doc = web.Load("http://en.wikipedia.org/wiki/Limnio") 
     Dim Grape As HtmlNode = doc.DocumentNode.SelectSingleNode("//*[@id='mw-content-text']/table/tbody/tr[6]/td") 
     txtPOO.Text = Grape.InnerHtml.Trim 

也許我導入的DLL錯了?任何幫助,將不勝感激! (我是一個新手)

+0

http://stackoverflow.com/a/3826452/1842065 –

回答

0

看起來你通過Chrome瀏覽器(或其他瀏覽器)看起來XPath,但遺憾的是,這並不容易,這是因爲Chrome向你展示了HTML,因爲它正在被Chrome解釋。 另一方面,您必須查看從服務器返回的HTML。

當你看到原始的HTML,你會發現,沒有tbody元素,讓你的XPath幾乎是正確的。

Dim Grape As HtmlNode = doc.DocumentNode.SelectSingleNode("//*[@id='mw-content-text']/table/tr[6]/td") 

這應該返回您正在尋找的節點。

至於測試XPath,我所知道的最好的工具是Html Agility Pack Testbed,它讓你加載一個頁面並嘗試不同的xpaths。你也可以看到頁面的來源,所以它在一個地方。另外,你會看到HTML真的不是Chrome如何呈現它。

+0

謝謝!有用!所以在將來,我將如何查找某個節點的XPath?我使用Chrome瀏覽器查找以前的XPath – user3162084

+0

@ user3162084,以及我見過的人使用Firefox的firebug查找xpath,但我不確定是否會屏蔽與Chrome相同的結果。我只是通過'view source'在firefox中查看它們,從來沒有遇到過問題。然而,你不能像那樣看待它們,但必須自己「建造」它們。另一個可能有用的工具是HAP Testbed,我會在我的答案中編輯一個鏈接。 – shriek