[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: FW: Trying to translate code with specific values

Subject: RE: 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
RE:  FW: Trying to translate code with specific values
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:  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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.