risposta Step-by-step.
Per selezionare elementi con div[@id='content-area']
antenato, che sono le seconde bambino dei rispettivi genitori usano:
//div[@id='content-area']//div[2]
Per selezionare secondo (nell'ordine del documento) div
elemento con uso div[@id='content-area']
antenato:
(//div[@id='content-area']//div)[2]
Annotare la differenza.
Quindi, per selezionare gli elementi, che sono seconde bambino dei rispettivi genitori, a condizione che hanno una classe 'media-gallery-item' uso:
//div[@id='content-area']//div[2][@class='media-gallery-item']
per selezionare gli elementi, che sono il secondo da tali childs (dei rispettivi genitori) che hanno una classe media-gallery-item
:
//div[@id='content-area']//div[@class='media-gallery-item'][2]
Per selezionare secondo (nell'ordine del documento) div
elemento con un div[@id='content-area']
antenato, purché abbia media-gallery-item
classe:
(//div[@id='content-area']//div)[2][@class='media-gallery-item']
Per selezionare secondo (nell'ordine del documento) da tutto div
elemento con un div[@id='content-area']
antenato e una classe media-gallery-item
:
(//div[@id='content-area']//div)[@class='media-gallery-item'][2]
Spec cita come suggerito da @Alejandro:
Un predicato filtra un set di nodi con rispetto a un asse per produrre un nuovo insieme di nodi.Per ogni nodo nel nodo-set da filtrare, il PredicateExpr viene valutata con quella nodo come nodo di contesto, con il numero di nodi nel nodo-impostato come dimensione contesto , e con la posizione di prossimità del nodo nel set di nodi rispetto all'asse come posizione contesto
http://w3.org/TR/xpath/#predicates
la posizione vicinanza di un membro di un set di nodi rispetto ad un asse è definito come la posizione del nodo nel set di nodi ordinato nel documento ordine se l'asse è un asse avanti e ordinato nell'ordine inverso del documento se l'asse è un asse inverso
http://w3.org/TR/xpath/#dt-proximity-position
linea di fondo è che il predicato posizione funziona rispetto all'asse. E hai bisogno di una parentesi per dichiarare esplicitamente la priorità. Quindi non l'asse child
, ma il set di nodi dopo la risoluzione dell'asse descendant-or-self
sarà considerato, quando si calcola la posizione.
solo il primo duplicato trovato [Come faccio a selezionare gli ultimi N elementi con XPath?] (Http://stackoverflow.com/questions/458596/how-do-i-select-the- last-n-elements-with-xpath) –
Questo non è un duplicato. Voglio una posizione specifica e combinarla con un altro predicato. L'altro post vuole gli ultimi n elementi (nessun altro predicato, non la posizione esatta) –