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