例如我們有以下 HTML :<li class="gcui-menu-item tsc-dr-tree-item">1</li><li class="gcui-menu-item tsc-dr-tree-subitem">1-1</li><li class="gcui-menu-item tsc-dr-tree-subitem">1-2</li><li class="gcui-menu-item tsc-dr-tree-item">2</li><li class="gcui-menu-item tsc-dr-tree-subitem">2-1</li>注意:s中包含的文本實(shí)際上并不存在于頁面上,它們作為標(biāo)簽存在以幫助解釋問題。li在這里,我想獲取子項(xiàng)“1-1”和“1-2”,僅在第一個(gè)樹項(xiàng)“1”下方。如果我搜索://li[contains(@class, 'tree-item')]//following::li[contains(@class, 'subitem')]我還在第二個(gè)樹項(xiàng)“2-1”下面得到了子項(xiàng),因?yàn)榇私Y(jié)構(gòu)沒有子項(xiàng)作為項(xiàng)的子項(xiàng),而是同級項(xiàng)。那么,在我們到達(dá)一個(gè)元素之前,有什么辦法可以做嗎?也許直到下一個(gè)在其類中包含“樹項(xiàng)”?following:: lilifollowing::lili
1 回答

繁星coding
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
下面是第一個(gè)菜單項(xiàng)下的 li 子項(xiàng)元素匹配的 xpath。
//li[contains(@class,'tree-item')][1]/following-sibling::li[contains(@class,'tree-subitem') and count(preceding-sibling::li[contains(@class,'tree-item')])=1]
下面是 Chrome 控制臺中的輸出。
添加回答
舉報(bào)
0/150
提交
取消