Subject: RE: [xsl] Re: getting all nodes from a certain level in the xml hierarchy From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Fri, 27 Sep 2002 14:45:29 +0100 |
> When i try this, I get a "Cannot convert number to NodeSet" > Error... I use the Oracle XSLProcessor Classes. Looks like an Oracle bug. If the second argument to key() is a number, it should convert it to a string, not to a node-set. You could probably circumvent it by converting explicitly to a string using the string() function. Michael Kay Software AG home: Michael.H.Kay@xxxxxxxxxxxx work: Michael.Kay@xxxxxxxxxxxxxx > > > -----Ursprungliche Nachricht----- > Von: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]Im Auftrag von > Dimitre Novatchev > Gesendet: Freitag, 27. September 2002 12:46 > An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Betreff: [xsl] Re: getting all nodes from a certain level in > the xml hierarchy > > > Here's a simple solution using the Muenchian method for grouping: > > source xml (provided by you): > ---------------------------- > <Folder NAME="/"> > <Folder NAME="a"/> > > <Folder NAME="b"> > <Folder NAME="ba"/> > <Folder NAME="bb"/> > </Folder> > > <Folder NAME="z"> > <Folder NAME="za"> > <Folder NAME="very deep folder"/> > </Folder> > </Folder> > </Folder> > > stylesheet: > ---------- > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:output method="text"/> > > <xsl:key name="kDepth" match="Folder" > use="count(ancestor::*)" /> > > <xsl:template match="/"> > <xsl:for-each select="//Folder > [ > generate-id() > = > generate-id(key('kDepth', > count(ancestor::*) > )[1] > ) > ]"> > > <xsl:value-of select="concat('Level ', > count(ancestor::*), > ': ' > )"/> > <xsl:for-each select="key('kDepth',count(ancestor::*))"> > <xsl:value-of select="concat(@NAME, '; ')"/> > </xsl:for-each> > > <xsl:text>
</xsl:text> > </xsl:for-each> > > > </xsl:template> > </xsl:stylesheet> > > > Result: > ------ > > Level 0: /; > Level 1: a; b; z; > Level 2: ba; bb; za; > Level 3: very deep folder; > > > > 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 -> |
---|---|---|
AW: [xsl] Re: getting all nodes fro, Peter Menzel | Thread | RE: [xsl] Re: getting all nodes fro, Andrew Welch |
RE: [xsl] problems with nested temp, Michael Kay | Date | RE: [xsl] Formatted output, Michael Kay |
Month |