XPATH使用CONTAINS或STARTS WITH的多个AND语句

时间:2017-08-22 11:59:47

标签: xpath

<tr>
                <td>Principal</td>
                <td class="xh-highlight">Brian Jones</td>
            </tr>

我使用以下命令返回包含“princpal”一词的td:

//td[starts-with(., "Princ")]/following-sibling::td
//td[contains(., 'Princ')]/following-sibling::td

两者都工作正常,但我循环使用的一些html页面使用不同的术语,所以我需要寻找不同的术语。例如,有些人使用'headmaster'甚至只是'head':

<tr>
                    <td>Headmaster</td>
                    <td class="xh-highlight">Mrs Baines</td>
                </tr>

我需要做的是使用某种OR语句,我一直在玩这种变体:

//td[contains(., 'Princ' and contains ., 'head' and contains 'chief')]/following-sibling::td

因为我需要一些测试才能找到合适的测试。我无法得到这个结果。

1 个答案:

答案 0 :(得分:1)

尝试以下表达式:

//td[contains(., 'Princ') or contains(., 'Head') or contains(., 'Chief')]/following-sibling::td

//td[matches(., ("Princ|Head|Chief"), "i")]/following-sibling::td

如果您的工具支持matches()