Subject: Re: [xsl] Cannot use a parameter value in the group-starting-with attribute? From: Peter Desjardins <peter.desjardins.us@xxxxxxxxx> Date: Fri, 14 May 2010 16:17:51 -0400 |
Thank you! That did work. Your clarification is extremely helpful. Peter On Fri, May 14, 2010 at 4:07 PM, David Carlisle <davidc@xxxxxxxxx> wrote: > On 14/05/2010 20:49, Peter Desjardins wrote: >> >> Hi. I'm writing a 2.0 stylesheet and my processor is Saxon HE 9.2.1.1. >> Also, I'm just starting out with XSLT. >> >> I am trying to create a template with parameters that will use the >> for-each-group element. I find that I cannot use a parameter value in >> the group-starting-with attribute. > > There are two problems there, one is that patterns use a restricted syntax > compared to xpath, but more importantly parameters and variables in xpath > hold _values_ (as they would in c or fortran) not fragments of syntax 9as > they would in a shell scripting language) > > so when you go <xsl:with-param name="starting-element" select = "h1" /> > > the parameter does not hold the fragment of a pattern "h1" it holds the > result of ebaluating teh expression h1 at that point, which is a possibly > empty sequence of h1 nodes. > > the this works > > <xsl:for-each select = "$starting-element"> > > but it is not (at that point) selecting h1 elements it is simply iterating > over the list of elements that has already been selected and stored in the > $starting-element variable. > > but this could not work even if it were not a syntax error > > <xsl:for-each-group select = "*" group-starting-with = "$starting-element"> > > the grouping attributes need to take patterns or expressions used to filter > the nodes selected, not take a sequence of nodes. > > so do not pass in a sequence of nodes, pass in a string: > > <xsl:with-param name="starting-element" select = "'h1'" /> > > (note the extra quotes( > > then you can use that string in a pattern > > > <xsl:for-each-group select = "*" > group-starting-with = "*[name()=$starting-element]"> > > > David
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Cannot use a parameter va, David Carlisle | Thread | [xsl] .NET 4.0 XslCompiledTransform, Max Toro |
Re: [xsl] Cannot use a parameter va, David Carlisle | Date | [xsl] Re: First public working draf, Vladimir Nesterovsky |
Month |