2012-04-05 16 views
10

mam poniżej xpath wyrazXPath uzyskać elementu o indeksie

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

kursujący na stronie html, skanowanie obrazów. Powyższa kwerenda zwraca wiele obrazów, ale chcę tylko drugi na liście.

Próbowałem

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

bez powodzenia

Jak mogę to zrobić?

dzięki

Odpowiedz

25

W indeksie XPath zaczyna się od pozycji 1, dlatego

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

powinny działać poprawnie, jeśli trzeba wybrać każdą 2nd img w div[@class="post-content"]. Jeśli masz do wyboru tylko 2nd img ze wszystkich obrazów, które są w div[@class="post-content"], użyj:

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

Doskonały. Chociaż nie było jasne, trafiłeś. Drugi jest tym, czego szukałem. Wielkie dzięki – Thomas

+0

@Thomas, Witamy. –

6

indeksy w XPath są oparte na 1, a nie 0 oparte. Wypróbuj

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

To działa również – Thomas

+2

Oczywiście indeksy XPath są oparte na 1 ... co do cholery XPath? –

+0

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

Powiązane problemy