2012-04-05 11 views
10

tengo la expresión XPath a continuaciónXPath conseguir elemento por el índice

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

que se ejecuta en una página HTML, el escaneo de imágenes. La consulta anterior devuelve muchas imágenes, pero solo quiero el segundo en la lista.

He tratado

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

sin suerte

¿Cómo puedo hacerlo?

gracias

Respuesta

25

En índice XPath empieza con 1 posición, por lo tanto,

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

debería funcionar correctamente si usted tiene que seleccionar cada segundo img en div[@class="post-content"]. Si usted tiene que seleccionar sólo segundo img de todas las imágenes que se encuentran en div[@class="post-content"], utilice:

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

Excelente. Aunque no estaba claro, lo golpeaste. El segundo es lo que estaba buscando. Muchas gracias – Thomas

+0

@Thomas, Bienvenido. –

6

índices en XPath son, no se basan 0-base 1. Pruebe

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

Esto también funciona – Thomas

+2

Por supuesto, los índices XPath están basados ​​en 1 ... ¿qué demonios es XPath? –

+0

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

Cuestiones relacionadas