Schritt-für-Schritt-Antwort.
Zur Auswahl von Elementen mit einem div[@id='content-area']
Vorfahren, die die zweiten Kinder ihrer jeweiligen Eltern sind, verwenden:
//div[@id='content-area']//div[2]
So wählen Sie den zweiten (in der Reihenfolge der Dokumente) div
Element mit einer div[@id='content-area']
Vorfahren verwenden:
(//div[@id='content-area']//div)[2]
Achten Sie auf den Unterschied.
Dann, um Elemente auszuwählen, die zweite Kinder ihrer jeweiligen Eltern sind, vorausgesetzt, sie haben eine Klasse "media-gallery-item" verwenden:
//div[@id='content-area']//div[2][@class='media-gallery-item']
Um Elemente auszuwählen, die das zweite von jenen Kindern (ihrer jeweiligen Eltern) sind, die eine Klasse haben media-gallery-item
:
//div[@id='content-area']//div[@class='media-gallery-item'][2]
So wählen Sie den zweiten (in der Reihenfolge der Dokumente) div
Element mit einer div[@id='content-area']
Vorfahre, vorausgesetzt, er hat media-gallery-item
Klasse:
(//div[@id='content-area']//div)[2][@class='media-gallery-item']
So wählen Sie den zweiten (in der Reihenfolge der Dokumente) von allen div
Element mit einer div[@id='content-area']
Vorfahre und ein media-gallery-item
Klasse:
(//div[@id='content-area']//div)[@class='media-gallery-item'][2]
Zitate wie von @Alejandro vorgeschlagen:
Ein Prädikat filtert eine in Bezug auf eine Achse, um eine neue Knotenmenge zu erzeugen. Für jeden Knoten in der Knotenmenge, die gefiltert werden soll, wird das PrädikatExpr mit diesem Knoten als Kontextknoten ausgewertet, wobei die Anzahl der Knoten in der Knotenmenge als Kontextgröße, und mit der Nähe Position des Knotens in der Knotenmenge in Bezug auf die Achse als Kontext-Position
http://w3.org/TR/xpath/#predicates
Die Position in der Nähe einer Knotengruppe in Bezug auf eine Achse ist definiert als in der Knotenmenge, geordnet in Dokument geordnet, wenn die Achse eine Vorwärtsachse ist und in umgekehrter Reihenfolge der Dokumente geordnet wenn die Achse eine Rückwärtsachse ist
http://w3.org/TR/xpath/#dt-proximity-position
Unterm Strich funktioniert das Positionsprädikat in Bezug auf die Achse. Und man braucht Klammern, um die Priorität explizit zu deklarieren. Also nicht die child
Achse, aber die Knotenmenge nach der Auflösung der descendant-or-self
Achse wird bei der Berechnung der Position berücksichtigt.