You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用单条XPath查询选取HTML表格<td>内的最深层元素

嘿,我来帮你搞定这个XPath的问题!

你想要用单条XPath直接抓取每个<td>里的最深层文本,当前用的//table/tr/td/*[last()]/text()其实有点小问题——第一个<td>里的test能拿到,但第二个<td>里的最深层是<span>里的test2,这个表达式会选中<td>下最后一个子元素<div class="header">,可这个div还有子元素,所以取到的文本是空,达不到你的预期。

给你调整一下XPath,直接定位到每个<td>下没有子元素的最深层节点,再提取文本:

//table/tr/td//*[not(*)]/text()

为啥这个表达式管用?

  • //table/tr/td:先定位到表格里的所有<td>元素
  • //*[not(*)]:在每个<td>的后代里,挑出那些完全没有子元素的节点——这就是你要的最深层元素
  • /text():把这些节点里的文本内容提取出来

跑这个表达式的话,就能精准得到你想要的结果:

  • Text='test'
  • Text='test2'

要是你担心以后会遇到文本直接在<td>里(没有嵌套任何元素)的情况,还可以用更健壮的版本,兼容这种场景:

//table/tr/td//text()[not(parent()/*)]

这个是直接找所有“父节点没有子元素”的文本节点,不管文本所在的节点是不是<td>的直接子元素,通用性更强。


内容的提问来源于stack exchange,提问作者3lvinaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:01:10