Html 基于多个子对象的XPath父对象

Html 基于多个子对象的XPath父对象,html,xml,selenium,xpath,Html,Xml,Selenium,Xpath,如何选择包含ccc和ddd元素且不包含其他元素的父级 i、 e.从下面的XML: <table> <tr> <td>aaa</td> <td>bbb</td> <td>select</td> </tr> <tr> <td>ddd</td> <td

如何选择包含
ccc
ddd
元素且不包含其他元素的父级

i、 e.从下面的XML:

<table>
    <tr>
        <td>aaa</td>
        <td>bbb</td>
        <td>select</td>
    </tr>
    <tr>
        <td>ddd</td>
        <td>ccc</td>
        <td>select</td>
    </tr>
    <tr>
        <td>ccc</td>
        <td>ddd</td>
        <td>select</td>
    </tr>
    <tr>
        <td>aaa</td>
        <td>ccc</td>
        <td>select</td>
    </tr>
</table>

aaa
bbb
选择
ddd
ccc
选择
ccc
ddd
选择
aaa
ccc
选择
选择此行:

<tr>
    <td>ccc</td>
    <td>ddd</td>
    <td>select</td>
</tr>

ccc
ddd
选择

或者,如何在
td
ccc
ddd
的同一行上选择第三个
td
(其中写入了select)?

[…]中)或后续步骤创建上下文。最后一步包含有效选择的结果集。您可以在任何步骤中应用一个或多个谓词,以减少集合

此表达式选择
tr
元素,该元素包含字符串值为
aaa
td
元素和字符串值为
bbb
td
元素

//tr[td='aaa' and td='bbb']
此表达式将从第二个和第三个
节点(具有
td='ccc'和td='ddd'的节点)中选择一个包含两个
td
节点(
select
)的集:

//tr[td='ccc' and td='ddd']/td[3]
不使用and,您还可以堆叠谓词。每个谓词都会减少结果集,从而创建一个上下文,在该上下文中以下谓词进行操作。这与上面的表达式具有相同的效果:

//tr[td='ccc'][td='ddd']/td[3]

这是一个很好的解释。我会试一试,如果有效的话,再给你一个正确的答案。谢谢!