xsl-list
[Top] [All Lists]

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

2006-11-04 05:16:03
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>
  • [xsl] RE: FW: Trying to translate code with specific values into variables to do a count, Emily.Garrett <=