Re: path quesion

Subject: Re: path quesion
From: Nick Browne <NickBrowne@xxxxxxxxxxxxxxx>
Date: Sun, 02 Jul 2000 22:52:48 +0100
Perhaps I was lucky !

Kay Michael wrote:

> There is no way in standard XSLT of constructing an XPath expression from a
> string (other than by writing a stylesheet to generate another stylesheet).

This worked for me on Oracle v2.0.2.8. (my earlier posting showed a full
example) :

  <!-- Store the cross reference data -->
   <xsl:variable name="CRData" select="document('twodocs01b.xml')"/>

   <!-- Set the name of the element we want to look up -->
   <xsl:variable name="CRElement">Name</xsl:variable>

  <!-- Display the cross reference value using the current element value as
selection -->
   <xsl:value-of
select="$CRData/Root/Item[text()=current()]/*[name()=$CRElement]/text()"/>

This allowed a dynamic lookup to the second file. Repeating the value-of with
$CRElement set to a different element name brought back the required data.

Similar code worked using attributes in the main and cross reference files to
provide the 'keys', ie. [text()=current()] was replaced by
[@key=current()/@key]. Is this legal ?

Am I right in thinking that you cannot use a variable as an element name in a
path component except at the top level, i.e. $CRElement in the above is OK but
replacing Root or Item with a variable reference is what is not allowed ?

I hope the above is legal. Coming from a database background I see such
techniques as wholly necessary tools, if there is something wrong I would like
to know. As you say, the fact that something works doesn't always make it right
!

Nick Browne
Slipstone Ltd
P.S. Isn't the above just a variation on 'the old sort hack' ?


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


Current Thread