ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> xsl-list
xsl-list
RE: [xsl] FW: Trying to translate code with specific values into variables to do a count
by Michael Kay other posts by this author
Nov 3 2006 2:31PM messages near this date
[xsl] FW: Trying to translate code with specific values into variables to do a count | [xsl] WDDX Recordset generic simplification
& XSLT 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@[...].com [mailto:Emily.Garrett@[...].com] 
>  Sent: 03 November 2006 20:49
>  To: xsl-list@[...].com
>  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
>  
>  --~------------------------------------------------------------------
>  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@[...].com>
>  --~--
>  


--~------------------------------------------------------------------
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@[...].com> 
--~--
Thread:
Emily Garrett
Michael Kay

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved