选择节点,其中包含具有特定属性的后代

时间:2013-04-10 00:07:25

标签: xpath

我有类似的结构:

<tr>
    <td>I WANT THIS</td>
    <td>
        <a class="unread">text</a>
    </td>
    <td></td>
</tr>
<tr>
    <td></td>
    <td>
        <a class="read">text</a>
    </td>
    <td></td>
</tr>

我需要选择<tr>节点,其中<a>节点具有属性[@class='unread'],以便稍后选择内部<td>

我尝试了//tr[a/@class='unread']//tr/a[@class='textMsg unread'],但没有效果。如何获取<tr>节点?

2 个答案:

答案 0 :(得分:6)

a标记不是tr标记的子标记,您可以尝试使用此xpath:

//tr[.//a/@class='unread']

或者

//tr[descendant::a/@class='unread']

答案 1 :(得分:0)

要选择所需的td元素,请使用

//tr//td[.//a[@class = 'unread']]

如果知道tdtr的孩子且atd的孩子,则上述内容可能会简化至

//tr/td[a[@class = 'unread']]