我有这个html:
<tbody>
<tr id="1">
<td>foo faa</td>
<td>faa fii</td>
<td>foo faa</td>
<td>faa fuu</td>
</tr>
<tr id="2">
<td>foo fuu</td>
<td>fyy fuu</td>
<td>foo foo</td>
<td>fuu fii</td>
</tr>
<tr id="3">
<td>fuu faa</td>
<td>fii fuu</td>
<td>fuu fuu</td>
<td>fyy fee</td>
</tr>
<tr id="4">
<td>foo foo</td>
<td>fee faa</td>
<td>fee fyy</td>
<td>foo fuu</td>
</tr>
</tbody>
在我的示例中,元素td
包含两个单词,但实际上,元素td
可能包含更多单词。并且tr
元素可以包含更多4个td
子元素。
我要根据其子元素的innerText选择tr
元素。我希望能够搜索多个值。
例如:
如果我搜索“ fuu”,“ foo”和“ fii”,则xpath的预期结果必须是ID为{1和2的元素tr
。
如果我搜索“ fuu”和“ fii”,则xpath的预期结果必须是ID为tr
且ID为1、2和3的元素。
如果我仅搜索“ fee”,则xpath的预期结果必须是ID为{3}和{4}的元素tr
。
我尝试过:
//tr[*[contains(text(), 'fuu')] and *[contains(text(), 'foo')] and *[contains(text(), 'fii')]]
其工作正常(http://xpather.com/Tdg5OGr2)。但是,也许存在一个更通用/更合适的解决方案,有人知道吗? 如果我想通过示例搜索十个单词,则xpath会变得很大x)