What is the XPath expression to find only the first occurrence?

Narin picture Narin · Jan 12, 2013 · Viewed 66.7k times · Source

I used this Xpath expression "//span[@class='Big']" and got all elements in that page that are under <span> tag and class='Big'.

My question is what if I want just the first occurrence on the page, not all occurrences, what would be the correct Xpath expression?

Thanks, Narin

Answer

Dimitre Novatchev picture Dimitre Novatchev · Jan 12, 2013

The correct answer (note the brackets):

(//span[@class='Big'])[1]

The following expression is wrong in the general case:

//span[@class='Big'][1]

because it selects every span element in the document, that satisfies the condition in the first predicate, and that is the first such child of its parent -- there can be many such elements in an XML document and all of them will be selected.

For more detailed explanation see: https://stackoverflow.com/a/5818966/36305