如何在具有特定内容或属性的元素之后匹配元素?

时间:2012-03-24 18:04:48

标签: xpath

简化示例

<td>caption</a>
<a id="tt-1">text1</a>
<a id="tt-2">text2</a>
<td>topics</td>
<a id="tt-3">text3</a>
<a id="tt-4">text4</a>
<a id="tt-5">text5</a>

我需要的是匹配a下面的所有<td>topics</td>元素。 请注意,示例中这些元素之间有很多元素。 <td>也可以包含在其他元素中。

我当前的真实世界XPath表达式如下所示

//a[contains(@id,'tt-')]

更新为更贴近现实世界

澄清的另一个更新。

1 个答案:

答案 0 :(得分:2)

根据您的陈述“我需要的是匹配<td>topics</td>下面的所有元素”

//td[.='topics']/a

我确信这不是整个故事。

根据您更新的示例:

//a[starts-with(@id, 'tt-') and preceding-sibling::td[1] = 'topics']