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
,而不仅仅是第一个表体。有谁知道为什么?
从第二个表(实际上是源中的表 3,因为表 2 和表 4 在默认视图中不可见)获取数据时也遇到问题。当我选择 "//table[@class='sortable stats_table']"
时,它显示有四个表,但是当我选择 "//table[@class='sortable stats_table'][3]"
,它什么也没找到(当我尝试使用结果时,出现未绑定对象异常。这是为什么?
I want to get player lists from here:
http://www.basketball-reference.com/boxscores/201105090BOS.html
To do that for the first table, I use the following:
HtmlNode reboundsNode = doc.DocumentNode.SelectSingleNode("//table[@class='sortable stats_table']/tbody[1]");
foreach(HtmlNode node in reboundsNode.SelectNodes("tr"))
{
// Get the 'td's.
}
I had to split it into two lines, because "//table[@class='sortable stats_table']/tbody[1]/tr"
selected tr
s from all of the table bodies instead of just the first one. Does anyone know why?
I also have problems when getting the data from the second table (actually table number 3 in the source since there are tables 2 and 4 that are invisible in the default view). When I select "//table[@class='sortable stats_table']"
, it shows that there are four tables, but when I do "//table[@class='sortable stats_table'][3]"
, it finds nothing (I get an unbound object exception when I try to use the result. Why is that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因为 XPath [] 不是表体的数字,而是条件,所以 1 意味着总是 true - 尝试这个 - 它将从第一个 tbody 选择
第二个问题
这是无效的 xpath - 正确的写法是
注意:位置从 1 开始不是从 0 开始,到元素计数结束。
because XPath [] is not a number of table body, but condition , so 1 mean always true - try this - it will select from first tbody
Second question
This is invalid xpath - correct way to write this is
Note: position starts from 1 not from 0 and ends at elements count.