我必须从HTML表格中的单元格中提取特定字段。使用Firebug我能够获得我需要的细胞的确切XPath(不幸的是,细胞没有id标签)。我以为我可以使用DocumentNode.SelectSingleNode并传入该路径,但它似乎没有正常工作。我究竟做错了什么?还是有一个更好的方法,而不是我这样做?不幸的是,我没有XPath的经验,所以这比我预期的更难。这是我到目前为止所知道的(我知道HTML特别混乱,但我无法控制改变):
Dim page As New HtmlAgilityPack.HtmlDocument
Dim node As HtmlAgilityPack.HtmlNode
page.LoadHtml(fileContents)
node = page.DocumentNode.SelectSingleNode("/html/body/form/div[6]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[2]")
非常感谢。
答案 0 :(得分:1)
Firebug可能修复了破坏的html标签。 如果你想选择和Html节点,建议使用class或id。 例如:
//div[@class='content']//table//tr[1]/td[2]
缩短路径,并使用类或id选择器。
如果表格中有自己的ID,您可以使用:
//table[@id='tableid']/tr[1]/td[2]
尝试一下,你会发现XPATH很有趣。