[xsl] Select Deepest Node only in Iteration

Subject: [xsl] Select Deepest Node only in Iteration
From: "J. Zhang" <j.zhang@xxxxxx>
Date: Thu, 12 Jul 2007 16:47:15 +0200
I have already checked the XSL FAQ at http://www.dpawson.co.uk/ and
explored the history of this mailinglist. I could not find the answer,
that is why I am posting here.

I am matching the content of XML elements this way in a for-each iteration:

xsl:if test="matches(string(self::node()), concat('\W', $term, '\W'),
'im')">

I return the absolute path where $term occurs in the transformation. The
result after the transformation is for example this for Word 1:

//article

//article/body[1]

//article/body[1]/section[6]

//article/body[1]/section[6]/normallist[6]
							
//article/body[1]/section[6]/normallist[6]/item[1]

The problem is that I only want the longest path, e.g. the deepest node
of this leave. I need to set a condition that only returns something
when the for-each iteration has come to the longest path of this leave,
but I could not find a way to do this.

Any help would be greatly appreciated! Thanks!

Current Thread