Krok po kroku odpowiedź.
Aby wybrać elementy z div[@id='content-area']
przodka, które są drugim Childs z ich rodzicami użyć:
//div[@id='content-area']//div[2]
Aby wybrać drugi (w kolejności dokumentu) div
element z użytku div[@id='content-area']
przodka:
(//div[@id='content-area']//div)[2]
Zanotuj różnicę.
Następnie, aby wybrać elementy, które stanowią drugi Childs z ich rodzicami, pod warunkiem, że posiadają klasę „media-galeria-pozycji” zastosowanie:
//div[@id='content-area']//div[2][@class='media-gallery-item']
Aby wybrać elementy, które są drugim z te dzieciaki (z ich rodzicami), które mają klasę media-gallery-item
:
//div[@id='content-area']//div[@class='media-gallery-item'][2]
Aby wybrać drugi (w kolejności dokumentu) div
element z div[@id='content-area']
przodka, pod warunkiem że ma media-gallery-item
klasa:
(//div[@id='content-area']//div)[2][@class='media-gallery-item']
Aby wybrać drugi (w kolejności dokumentu) ze wszystkich div
elementu z div[@id='content-area']
przodka i klasy media-gallery-item
:
(//div[@id='content-area']//div)[@class='media-gallery-item'][2]
Spec cytuje jak sugeruje @Alejandro:
Predykat filtruje zestaw węzłów o wartości względem osi w celu wygenerowania nowego Zestaw węzłów.Dla każdego węzła w zestaw węzłów być filtrowany, PredicateExpr ocenia się tym węzła jako węzła kontekstowego numerem z węzłów w zestaw jako wielkości kontekstu, w położeniu zbliżeniowy węzła w węźle ustawiony w stosunku do osi, w położeniu kontekstowego
http://w3.org/TR/xpath/#predicates
stanowisko bliskość członek zestaw węzłów w odniesieniu do osi jest zdefiniowany jako pozycja węzła w zamówieniu kolejności węzła uporządkowanym w dokumencie , jeśli oś jest osią przednią i jest zamawiana w odwrotnej kolejności dokumentów , jeśli oś jest odwrotna osi
http://w3.org/TR/xpath/#dt-proximity-position
Najważniejsze jest to, że działa orzeczenie położenie w stosunku do osi. I potrzebujesz nawiasów, aby jawnie zadeklarować priorytet. Zatem nie będzie osią child
, ale zestaw węzłów po rozwiązaniu osi descendant-or-self
będzie brany pod uwagę przy obliczaniu pozycji.
tylko pierwszy duplikat znaleźć [Jak wybrać ostatnich N elementów z XPath?] (Http://stackoverflow.com/questions/458596/how-do-i-select-the- last-n-elements-with-xpath) –
To nie jest duplikat. Chcę określonej pozycji i połączyć ją z innym predykatem. Drugi post chce ostatnich n pozycji (nie ma innego predykatu, nie jest to dokładna pozycja). –