【问题标题】:Two levels of contains in an XPathXPath 中的两级包含
【发布时间】:2023-03-09 01:51:01
【问题描述】:

我有这个 XPath:

//tr[contains(td, 'Europe')]

当我有这个时它正在工作:

<tr>
  <td></td>
  <td>Europe</td>
  <td></td>
</tr>

但现在我有了这个:

<tr>
  <td></td>
  <td><a>Europe</a></td>
  <td></td>
</tr>

我现在如何使用 XPath(基于欧洲在其中的事实)。

我试过了:

//tr[contains(a, "Europe")]

和

//tr[contains(text(), "Europe")]

还有许多其他愚蠢的事情都没有成功。

【问题讨论】:

    标签: xpath contains


    【解决方案1】:
    //tr[contains(td, 'Europe')]
    

    这应该适用于两种模式,因为fn:contains() 将两个参数都转换为字符串。

    我确实看到了不同架构的问题,其中可能有多个 td 元素。对于这种情况,您应该使用:

    //tr[td[contains(.,'Europe')]]
    

    【讨论】:

    • 是的,里面有更多的tds,我会解决这个问题,谢谢你的回答。
    • 你可能想要 .//tr[td[contains(.,'Europe')]] 如果有任何机会这也可以在上下文节点之外匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-15
    • 2014-06-30
    相关资源
    最近更新 更多