This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Dynamic XPATH problem
- From: Jeni Tennison <jeni at jenitennison dot com>
- To: Lea Allison <Lea dot Allison at virgin-exp dot com>
- Cc: "XSL List (E-mail)" <xsl-list at lists dot mulberrytech dot com>
- Date: Tue, 5 Mar 2002 13:17:09 +0000
- Subject: Re: [xsl] Dynamic XPATH problem
- Organization: Jeni Tennison Consulting Ltd
- References: <A81889A49303D611871C00A024513E932FFE6A@virgin_6>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Lea,
> I have a piece of code that goes like this:
>
> <xsl:for-each select="LIBRARY/*/TRAVELINFO/*">
> <TR valign="center">
> <TD>
> <xsl:value-of select="NAME" />
> </TD>
> </TR>
> </xsl:for-each>
>
> and I want to swap-out the TRAVELINFO node for the content of:
>
> //LIBRARY/CURRENTNODE
Do you mean that the CURRENTNODE element within your source document
holds the string 'TRAVELNODE', and you want to find the element named
that, and process its children?
If so, then you need:
<xsl:for-each
select="LIBRARY/*/*[name() = //LIBRARY/CURRENTNODE]/*">
<TR valign="center">
<TD>
<xsl:value-of select="NAME" />
</TD>
</TR>
</xsl:for-each>
Alternatively, especially if what's held in the CURRENTNODE element is
more complicated than just the name of an element, you can use an
extension evaluate() function, but I'd avoid those if you can.
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list