Subject: RE: [xsl] Select Deepest Node only in Iteration From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Thu, 12 Jul 2007 16:08:26 +0100 |
The simplest change to your code is to add an xsl:sort to your for-each that sorts the matching nodes by descending depth. That's <xsl:sort select="count(ancestor::node)" order="descending"/>. Then you can return a value only when position()=1. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: J. Zhang [mailto:j.zhang@xxxxxx] > Sent: 12 July 2007 15:47 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Select Deepest Node only in Iteration > > 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Select Deepest Node only in I, J. Zhang | Thread | Re: [xsl] Select Deepest Node only , J. Zhang |
[xsl] Select Deepest Node only in I, J. Zhang | Date | Re: [xsl] Alternative for current-g, Bhaskar _ |
Month |