Thanks. That makes sense. I tried it but still get the same error. I changed
it to this:
<xsl:value-of
select="count(preceding::*[name()=$counterElement][ends-with(@*[name()=$counterAttName],$counterAttValue)][ancestor::*[name()=$containerElement][(_at_)*[name()=$containerAttName]=$containerAttValue]])+1"/>
Here is the error:
XPTY0020: The context item for axis step attribute::attribute() is not a node
Thanks.
Emily
Date: Fri, 3 Nov 2006 22:28:41 -0000
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
From: "Michael Kay" <mike(_at_)saxonica(_dot_)com>
Subject: RE: [xsl] FW: Trying to translate code with specific values into
variables to do a count
Message-ID: <016c01c6ff97$6ad0c810$6401a8c0(_at_)turtle>
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/ <http://www.saxonica.com/>
Date: Fri, 3 Nov 2006 15:49:03 -0500
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
From: <Emily(_dot_)Garrett(_at_)thomson(_dot_)com>
Subject: FW: Trying to translate code with specific values into variables to do
a count
Message-ID:
<3BE0394641D53F46B7D3C6CE870CEC540438C59F(_at_)tlusohcinmbx02(_dot_)ERF(_dot_)THOMSON(_dot_)COM>
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=3D"Ch">
<table-wrapper km=3D"Ch.1.Ta.A">
.....
</table-wrapper>
<table-wrapper km=3D"Ch.1.Ta.A">
.....
</table-wrapper>
<table-wrapper km=3D"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=3D"count(preceding::table-wrapper[ends-with(@km,
'Ta.A')][ancestor::chunk[(_at_)km=3D'Ch']])+1"/> =20
This example works perfectly.
But when I try to represent the working code above with variables, I get
an error:
<xsl:value-of
select=3D"count(preceding::*[name()=3D$counterElement[ends-with(@*[name()=
=3D$c
ounterAttName],$counterAttValue)]][ancestor::*[name()=3D$containerElement=
[
@*[name()=3D$containerAttName]=3D$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
------------------------------
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--