RE: [xsl] FW: Trying to translate code with specific values into variables to do a count

Subject: RE: [xsl] FW: Trying to translate code with specific values into variables to do a count
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 3 Nov 2006 22:28:41 -0000
You start with

preceding::table-wrapper[ends-with(@km,'Ta.A')]

and you want the element name to be variable. So you replace table-wrapper
with *[name()=$x]. That gives you

preceding::*[name()=$x][ends-with(@km,'Ta.A')]

not

preceding::*[name()=$x[ends-with(@km,'Ta.A')]]

because the ends-with predicate qualifies the element *, not the variable
$x. 

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Emily.Garrett@xxxxxxxxxxx [mailto:Emily.Garrett@xxxxxxxxxxx] 
> Sent: 03 November 2006 20:49
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] FW: Trying to translate code with specific 
> values into variables to do a count
> 
> 
> I am trying to translate code using specific values into code 
> that uses variables to represent those values.
> 
> Here is an XML example:
> <chunk km="Ch">
> <table-wrapper km="Ch.1.Ta.A">
> .....
> </table-wrapper>
> <table-wrapper km="Ch.1.Ta.A">
> .....
> </table-wrapper>
> <table-wrapper km="Ch.1.Ta.A">
> .....
> </table-wrapper>
> </chunk>
> 
> The following code counts all the table-wrapper elements with 
> a km attribute that ends in Ta.A that are inside of this 
> chunk element where the km attribute value is Ch.
> 
> <xsl:value-of select="count(preceding::table-wrapper[ends-with(@km,
> 'Ta.A')][ancestor::chunk[@km='Ch']])+1"/>              
> This example works perfectly.
> 
> But when I try to represent the working code above with 
> variables, I get an error:
> <xsl:value-of
> select="count(preceding::*[name()=$counterElement[ends-with(@*
> [name()=$c
> ounterAttName],$counterAttValue)]][ancestor::*[name()=$contain
> erElement[
> @*[name()=$containerAttName]=$containerAttValue]]])+1"/>
> 
>   Here is the error:
> 
> XPTY0020: The context item for axis step 
> attribute::attribute() is not a node
> 
> Does anyone have an idea of what I'm doing wrong?
> 
> Thanks.
> Emily

Current Thread