Mike Kay and I already answed this (guessing the form of your input
before you posted it)
You don't have any element with two mod children so
//mot[2]
will return nothing (it would return all the mot elements that have one
earlier mot sibling)
similarly for all your other examples that have numeric predicates.
//mot['2'] on the other hand has a string predicate so that is coereced
to a boolean, strings are considered true if they are non empty, so
//mot['2'] is //[mot[true()] which is //mot.
As Mike's answer said, if you want the second mot element in the whole
document that is
(//mot)[2] or /descendent::mot[2]
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list