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

如何根据子元素的赛事时长(含63)和比分(0:0)获取其父元素?

匹配符合特定条件的赛事父元素DOM节点

提供的DOM结构

<div class="all-ebents">
    <div class="sport-base-event">
        <span class="event-block-current-time__time--VEuoj">63:07</span>
        <span class="event-block-score">0:0</span>
    </div>

    <div class="sport-base-event">
        <span class="event-block-current-time__time--VEuoj">64:07</span>
        <span class="event-block-score">0:1</span>
    </div>

    <div class="sport-base-event">
        <span class="event-block-current-time__time--VEuoj">63:07</span>
        <span class="event-block-score">0:1</span>
    </div>
</div>

现有查询代码

//*[contains(@class, "event-block-current-time--")]::text() # 获取时长文本
//*[contains(@class, "event-block-current-time--")]/following-sibling::div::text() # 获取比分文本

问题

如何跳过上述分步查询,直接获取满足「子元素赛事时长包含63且相邻子元素比分是0:0」的父元素?


解决方案

方法1:基于子元素存在性筛选

使用以下XPath直接定位目标父节点:

//div[@class="sport-base-event"]
[span[contains(@class, "event-block-current-time--") and contains(text(), "63")]]
[span[@class="event-block-score" and text()="0:0"]]

解释:

  • //div[@class="sport-base-event"]:先锁定所有赛事父节点
  • 第一个条件[span[...]]:筛选出包含指定时长元素且文本含"63"的节点
  • 第二个条件[span[...]]:进一步筛选出包含"0:0"比分的节点

方法2:强调相邻子元素关系

如果需要严格确保时长元素的下一个兄弟就是目标比分元素,可使用:

//div[@class="sport-base-event"]
[span[contains(@class, "event-block-current-time--") and contains(text(), "63")]
/following-sibling::span[1][@class="event-block-score" and text()="0:0"]]

解释:

  • /following-sibling::span[1]:指定只匹配时长元素的紧邻下一个span兄弟元素,避免父节点中存在其他无关span的干扰

内容的提问来源于stack exchange,提问作者Ethical Hacking

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 22:50:00