如何在xpath中选择顺序元素?

Sha*_*Dor 1 xpath

假设我有这个XML:

<body>
    <div id="1"></div>
    <a id = "1"></a>
    <a id = "2"></a>
    <a id = "3"></a>
    <div id="2"></div>
    <a id = "4"></a>
    <a id = "5"></a>
    <a id = "6"></a>
</body>
Run Code Online (Sandbox Code Playgroud)

给定该元素//div[id='1'],我该如何选择“它的” <a>元素(从1到3的ID),但要排除<a>ID为4或更高的元素,因为它们出现在<div id='2'>

har*_*r07 5

这是一种可能的XPath:

//div[@id='1']/following-sibling::a[preceding-sibling::div[1][@id='1']]
Run Code Online (Sandbox Code Playgroud)

XPath基本上在最接近的前一个兄弟元素是的a后面div[@id='1']进行选择。也许以下简单的XPath就足够了:divdiv[@id='1']

//a[preceding-sibling::div[1][@id='1']]
Run Code Online (Sandbox Code Playgroud)