需要有关 XPATH 的帮助来获取特定 Html img 标签的 src 值

发布于 2024-10-31 05:37:19 字数 1431 浏览 5 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦旅人picnic 2024-11-07 05:37:19

根据你的 URL,这对我有用:

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;

Based on your URL this worked for me:

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

Basically just grabbing the closest element that has an id, then walking the tree down to where you want to be.

Alternatively this would work too and seems a little cleaner (since you don't really care about the DOM structure in the table itself as long as there is just one image):

var statsNode = doc.DocumentNode.SelectSingleNode("//table[@id='tickerStats']");
var imageNode = statsNode.SelectSingleNode(".//img");
string imageText = imageNode.Attributes["src"].Value;
落叶缤纷 2024-11-07 05:37:19

使用

//table[@id='tickerStats']/tbody/tr/td/img/@src

选择名为 img 的任何名为 img 的元素中名为 src 的任何属性,该元素是 td 的子元素。 tr 的子级,该 trtbody 的子级,而 tbody 又是文档中具有 的任何 table 的子级id 属性,值为“tickerStats”。

如果您只需要此属性的字符串值(假设上面的 XPath 表达式选择单个属性节点),请使用:

string(//table[@id='tickerStats']/tbody/tr/td/img/@src)

Use:

//table[@id='tickerStats']/tbody/tr/td/img/@src

This selects any attribute named src of any element named img that is a child of a td that is a child of a tr that is a child of a tbody that is a child of any table in the document, that has an id attribute with value 'tickerStats'.

If you need just the string value of this attribute (assuming the above XPath expression selects a single attribute node), use:

string(//table[@id='tickerStats']/tbody/tr/td/img/@src)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文