2012-04-05 17 views
10

Ich habe den unten XPath-AusdruckXPath erhalten Element von Index

//div[@class="post-content"]//img 

, die auf einer HTML-Seite ausgeführt wird, Scannen von Bildern. Die obige Abfrage gibt eine Menge Bilder zurück, aber ich möchte nur die zweite in der Liste.

Ich habe

versucht
//div[@class="post-content"]//img[1] and 
//div[@class="post-content"]//img[position()=1] 

ohne Glück

Wie kann ich es tun?

dank

Antwort

25

In XPath-Index geht von 1-Position, also

//div[@class="post-content"]//img[2] 

sollte ordnungsgemäß funktionieren, wenn Sie jedes zweite img in div[@class="post-content"] auswählen. Wenn Sie nur 2. img aller Bilder auszuwählen, die in div[@class="post-content"] sind, verwenden:

(//div[@class="post-content"]//img)[2] 
+0

Ausgezeichnet. Obwohl ich nicht klar war, hast du es getroffen. Der zweite ist, was ich gesucht habe. Vielen Dank – Thomas

+0

@Thomas, Willkommen. –

6

Indizes in XPath sind 1-basiert, nicht 0-basiert. Versuchen Sie

(//div[@class="post-content"]//img)[position()=2] 
+0

Das funktioniert auch – Thomas

+2

Natürlich sind XPath-Indizes 1-basiert ... was zur Hölle XPath? –

+0

@JoeHakooz, http://mukulgandhi.blogspot.co.nz/2008/05/blog-post.html –