Я использую много XPath при размещении элементов на веб-страницах с использованием Selenium и ушел от использования node1//node2 в сторону использования node1/descendant:: node2 совсем недавно. Какая разница между этими двумя методами? Является ли более эффективным, чем другой?
Пример фрагмента XML для демонстрации:
<div id="books">
<table>
<tr><td class="title">Lord of the Rings</td><td class="author">JRR Tolkein</td></tr>
<tr><td class="title">The Hitch-Hikers Guide to the Galaxy</td><td class="author">Douglas Adams</td></tr>
</table>
</div>
Итак, это будет:
id('books')//td[@class='title']
или
id('books')/descendant::td[@class='title']