C# 派生用于访问表元素的XPath

C# 派生用于访问表元素的XPath,c#,xpath,html-agility-pack,C#,Xpath,Html Agility Pack,我正试图使用HtmlAgilityPack和一个C#Console应用程序从这张表中抓取数据 我能够在第2列(例如:EDAP TMS ADR(EDAP))中刮取股票名称,但我无法从Price、Chg、Chg%列中获得任何值的正确XPath 例如: 我的“名称”列XPath的工作原理如下: "//*[@id=\"column0\"]//div//table//tr//td//a" Price、Chg、Chg%列的XPath是什么? 您能帮助我理解如何派生它吗?以下是基于列名获得所需列输出的xpa

我正试图使用HtmlAgilityPack和一个C#Console应用程序从这张表中抓取数据

我能够在第2列(例如:EDAP TMS ADR(EDAP))中刮取股票名称,但我无法从Price、Chg、Chg%列中获得任何值的正确XPath

例如: 我的“名称”列XPath的工作原理如下:

"//*[@id=\"column0\"]//div//table//tr//td//a"
Price、Chg、Chg%列的XPath是什么?
您能帮助我理解如何派生它吗?

以下是基于列名获得所需列输出的xpath

对于价格:从第四行获取价格

//div[@class='mdcNarrowM']//table//tr[4]/td[count(ancestor::table[1]//tr[1]/td[.='Price']/preceding-sibling::td)+1]
本例中的一般表示法:(根据需要更新行号和列名)针对该表中的所有列进行测试

//div[@class='mdcNarrowM']//table//tr[row_number_goes_here]/td[count(ancestor::table[1]//tr[1]/td[.='column name goes here']/preceding-sibling::td)+1]
要获取所有行(标题行除外),请使用下面的xpath

//div[@class='mdcNarrowM']//table//tr[not(td[@class='colhead'])]/td[count(ancestor::table[1]//tr[1]/td[.='Price']/preceding-sibling::td)+1]

这样做可能会有所帮助:
//table/tbody/tr[2]/td[3]/text()
感谢您的回复。我能够获取集合,但是返回的集合还包含行的名称(即“Price”)。虽然我可以调整代码,只从第2个元素开始加载值,但我想知道您是否可以告诉我如何通过修改XPath来剥离列名。这就是我当前在代码中使用的://div[@class='mdcNarrowM']//table//tr td[count(祖先::table//tr td[.='Price']//前面的兄弟姐妹::td)+1]”是的,我可以用xpath完成。用xpath更新答案以获得除标题之外的所有行。检查并让我知道。