|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Complex group-by with saxon:evaluate?
> Ok, so here's the whole relevant xsl snippet > 01: <ul> > 02: <xsl:for-each-group select="bibtex:entry" > group-by="tokenize(normalize-space(*/bibtex:refgroup),' *; *')"> > 03: <xsl:sort select="current-grouping-key()" order="ascending"/> > 04: <li><xsl:value-of select="current-grouping-key()"/></li> > 05: </xsl:for-each-group> > 06: </ul> > > A: > Now, I first replaced line 2 above with: > 02: <xsl:for-each-group select="bibtex:entry" > group-by="tokenize(normalize-space(*[name()=$groupby]),' *; *')"> That should have been group-by="tokenize(normalize-space(*/*[name()=$groupby]),' *; *')" > > C: > (with saxon:evaluate) > I ... changed line 2 above to > 02: <xsl:for-each-group select="bibtex:entry" > group-by="tokenize(normalize-space(saxon:evaluate('*/$groupby' > )),' *; *')"> That should have been group-by="tokenize(normalize-space(saxon:evaluate(concat('*/', $groupby)),' *; *')" Variables don't work by textual substitution, even in saxon:evaluate! You must first construct an expression that contains the element name in a position where an element name is expected, then you must evaluate the expression you have constructed. The concat() constructs the expression, the saxon:evaluate() evaluates it. Michael Kay http://www.saxonica.com/
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Cast Your Vote
We need your help – Vote for DataDirect XML Products!
Winners and finalists announced at SOA World Conference in November. Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|







