简化示例
<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-')]
更新为更贴近现实世界
澄清的另一个更新。
答案 0 :(得分:2)
根据您的陈述“我需要的是匹配<td>topics</td>
下面的所有元素”
//td[.='topics']/a
我确信这不是整个故事。
根据您更新的示例:
//a[starts-with(@id, 'tt-') and preceding-sibling::td[1] = 'topics']