Пошаговый ответ.
Чтобы выбрать элементы с предком div[@id='content-area']
, которые являются вторыми дочерними элементами их соответствующих родителей, используйте:
//div[@id='content-area']//div[2]
Для выбора второго (в порядке документа) div
элемент с div[@id='content-area']
использованием предка:
(//div[@id='content-area']//div)[2]
Обратите внимание на разницу.
Затем выберите элементы, которыеВторые дети их соответствующих родителей, при условии, что у них есть класс 'media-gallery-item', используют:
//div[@id='content-area']//div[2][@class='media-gallery-item']
, чтобы выбрать элементы, которые являются вторыми из тех детей (их соответствующих родителей), которые имеютclass media-gallery-item
:
//div[@id='content-area']//div[@class='media-gallery-item'][2]
Чтобы выбрать второй (в порядке документа) элемент div
с предком div[@id='content-area']
, при условии, что он имеет media-gallery-item
класс:
(//div[@id='content-area']//div)[2][@class='media-gallery-item']
Чтобы выбрать второй (в порядке документа) из всех элементов div
с предком div[@id='content-area']
и классом media-gallery-item
:
(//div[@id='content-area']//div)[@class='media-gallery-item'][2]
Спецификационные кавычки в соответствии с предложением @Alejandro:
Предикат фильтрует набор узлов относительно оси, чтобы создать новый набор узловт.Для каждого узла в наборе узлов, подлежащем фильтрации, PredicateExpr оценивается с этим узлом в качестве узла контекста, с числом узлов в наборе узлов в качестве размера контекста и с позицией близости узла в узле-установка относительно оси как контекстная позиция
http://w3.org/TR/xpath/#predicates
Положение близости элемента набора узлов относительноось определяется как позиция узла в наборе узлов, упорядоченном в порядке документа, если ось является передней осью, и упорядочена в обратном порядке документа, если ось является обратной осью
http://w3.org/TR/xpath/#dt-proximity-position
Суть в том, что предикат позиции работает относительно оси.И вам нужно скобки, чтобы явно объявить приоритет.Таким образом, при расчете позиции будет учитываться не ось child
, а набор узлов после разрешения оси descendant-or-self
.