Subject: RE: [xsl] calculate depth of an xml-tree From: "Michael Kay" <mhk@xxxxxxxxx> Date: Tue, 22 Apr 2003 14:23:49 +0100 |
<xsl:for-each select="//*"> <xsl:sort select="count(ancestor-or-self::*)" data-type="number"/> <xsl:if test="position()=last()"> <xsl:value-of select="count(ancestor-or-self::*)"/> </xsl:if> </xsl:for-each> Or in 2.0: max(for $n in //* return count($n/ancestor-or-self::*)) You can possibly speed it up a little by excluding non-leaf elements, or by using a recursive template that supplies the depth of a node as a parameter, avoiding the need to count ancestors of every node. Michael Kay > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of > Florian Bauer > Sent: 22 April 2003 12:24 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] calculate depth of an xml-tree > > > hi > > and now my 2nd (and hopefully last) question for today ... > > I have to write an xsl file, which calculates the maximal depth of an > input xml file. > > <abc> > <cde> > <efg/> > <asd/> > </cde> > <aaa/> > </abc> > > => maxdepth = 3 .... > > I think I have to use a "for each" with sorting and increment a > variable, but I don't know how to do this (you see, I'm a big noob @ > xml/xsl :( ... ) > > would be great if someone could help me. > > cya Florian Bauer > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] calculate depth of an xml, Oleg Tkachenko | Thread | [xsl] count of how many times a par, Leena Kulkarni |
[xsl] count of how many times a par, Leena Kulkarni | Date | RE: [xsl] Passing a parameter to th, Michael Kay |
Month |