This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: path quesion
- To: xsl-list at mulberrytech dot com
- Subject: Re: path quesion
- From: Nick Browne <NickBrowne at slipstone dot co dot uk>
- Date: Sun, 02 Jul 2000 22:52:48 +0100
- Organization: Slipstone Ltd
- References: <93CB64052F94D211BC5D0010A800133101FDEF05@wwmess3.bra01.icl.co.uk>
- Reply-To: xsl-list at mulberrytech dot com
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