I've tried numerous connotations of for-each loops, recursive
etc but for the life of me I can't seem to get something
which will only
print/process the first 'x' (in my case x is 2) elements and
then bail out
of the for-each or just simply ignore the remaining ones found.
This is a good chance for you to start getting into XSLT-think mode.
Instead of limiting a loop, think of selecting just the elements you
want. The simplest example is to put this into a template -
<xsl:apply-templates select='element-to-work-with[3 > position()]'/>
Here you select just the first two nodes, and so whatever template
processes them only ever sees those two nodes to work on.
The most common and fundamental thing one usually does in xslt is to
select a set of nodes to work with. Therefore, think carefully about
how to select exactly the nodes you want.
[Note that the sense of the test is reversed to avoid having to write
<, which will work fine but is harder to read]
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list