xpath get element by index

2020-02-26 06:28发布

问题:

I have the below xpath expression

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

which runs on a html page, scanning for images. The above query returns a lot of images but I only want the second in the list.

I have tried

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

with no luck

How can I do it?

thanks

回答1:

In XPath index starts from 1 position, therefore

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

should work correctly if you have to select each 2nd img in div[@class="post-content"]. If you have to select only 2nd img from all images that are in div[@class="post-content"], use:

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


回答2:

indexes in XPath are 1-based, not 0-based. Try

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


标签: php xml xslt xpath