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

RE: M.Kay XSLT book, p. 120 Curly braces question

Subject: RE: M.Kay XSLT book, p. 120 Curly braces question
From: Kay Michael <Michael.Kay@xxxxxxx>
Date: Mon, 31 Jul 2000 12:13:33 +0100
xslt curly brace
> I would like to use a
> variable or parameter as part of an XPath expression. 
> However, whereas I can use variables in constructions such as
> $doc/FeatureSet[$i]/Feature[$j], where $doc is a nodeset generated by 
> 
> <xsl:variable name="doc" select="document(@FeatureFile)"/>
> 
> I cannot use a construction like $doc//$mypointer, where 
> $mypointer has the value 'FeatureSet[2]/Feature[4]'. 

To quote my response to another question today:

XSLT 1.0 doesn't allow you to construct XPath expressions, or parts of
expressions, from strings or variables at run-time.

You can sometimes work round it using name(), e.g.

select='document("EZ722.xml")/*[name()=$element]'

But that doesn't work in this case. Saxon has a more powerful workaround:
the saxon:evaluate() extension function. Here you could write:

select="saxon:evaluate(concat('$doc/', $mypointer))"

> In my xml file which describes my data, I want to include a 
> reference to the original data that was used in the calculation.

I think this is the classic use-case that justifies a feature such as
saxon:evaluate().

Mike Kay 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


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.