Например,
У нас есть следующий 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>
ПРИМЕЧАНИЕ. Текст, содержащийся в li
, фактически не присутствует на странице, он присутствует какметки, помогающие объяснить проблему.
Здесь я хотел бы получить подэлементы '1-1' и '1-2' только ниже первого элемента дерева, '1'.
Если я ищу:
//li[contains(@class, 'tree-item')]//following::li[contains(@class, 'subitem')]
, я также получаю подэлемент под вторым элементом дерева, '2-1', поскольку у этой структуры нет подэлементов в качестве дочерних элементов, но есть братья и сестры.
Так есть ли способ, которым мы можем сделать following:: li
, пока не достигнем элемента li
?Может быть following::li
до следующего li
, содержащего в своем классе 'tree-item'?