xsl-list
[Top] [All Lists]

RE: [xsl] Select Deepest Node only in Iteration

2007-07-12 08:08:53
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(_dot_)zhang(_at_)uva(_dot_)nl] 
Sent: 12 July 2007 15:47
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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!



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--