Re: [xsl] Dynamic XPATH problem

Subject: Re: [xsl] Dynamic XPATH problem
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Tue, 5 Mar 2002 13:17:09 +0000
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


Current Thread