我对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;