我想从这里得到的球员名单:的XPath/HTMLAgilityPack问题
http://www.basketball-reference.com/boxscores/201105090BOS.html
要做到这一点的第一个表,我使用以下命令:
HtmlNode reboundsNode = doc.DocumentNode.SelectSingleNode("//table[@class='sortable stats_table']/tbody[1]");
foreach(HtmlNode node in reboundsNode.SelectNodes("tr"))
{
// Get the 'td's.
}
我不得不把它分解分成两行,因为"//table[@class='sortable stats_table']/tbody[1]/tr"
从所有表格体中选择了tr
s,而不是第一个。有谁知道为什么?
我从第二个表中获取数据时也遇到问题(实际上源表中的表号3,因为表2和表4在默认视图中不可见)。当我选择"//table[@class='sortable stats_table']"
时,它显示有四个表格,但是当我做"//table[@class='sortable stats_table'][3]"
时,它找不到任何东西(当我尝试使用结果时,我得到一个未绑定的对象异常。为什么?
奇怪。那么为什么[N]符号为我多种其他表达方式? – Hui 2011-06-11 15:44:58
我不知道(也许有些MS选项等等),但它对XPath无效,它对于JavaScript,C,PHP有效...... – SergeS 2011-06-12 12:51:31
[N]子标记确实对XPath有效,例如, 'para [1]选择上下文节点的第一个子节点“请参阅 http://www.w3.org/TR/xpath/#path-abbrev – agentnega 2013-02-25 22:26:56