我对XPATH有点陌生,并且了解大多数基础知识,但是在进行特定查询时遇到了一些麻烦。

我正在尝试解析Motley Fool页面,并返回图像的来源以获取股票的大写得分。

例如:如果您查看页面的来源:http://caps.fool.com/Ticker/SLT.aspx我想要http://g.foolcdn.com/art/ratings/stars/trans/5stars-trans-lg.png的来源

如果可能的话,我只想要src =之后的内容。

我目前正在与:

xpath = "//div[@class='subtle marginT']"


但是,这什么也没有返回。我知道可能会问很多问题,但是如果您想回答,我也将不胜感激,因为我想学习XCAP而不是仅使此查询生效,因此对答案进行了快速推理。

最佳答案

根据您的网址,这对我有用:

var imageNode = doc.DocumentNode.SelectSingleNode("//table[@id='tickerStats']/tbody/tr/td/img");
string imageText = imageNode.Attributes["src"].Value;


基本上,只是获取具有id的最近的元素,然后将树向下走到想要的位置。

另外,这也可以工作,并且看起来更简洁(因为只要表中只有一个图像,您就不会真正在意表本身的DOM结构):

var statsNode = doc.DocumentNode.SelectSingleNode("//table[@id='tickerStats']");
var imageNode = statsNode.SelectSingleNode(".//img");
string imageText = imageNode.Attributes["src"].Value;

08-19 10:58