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

RE: combining two variables to generate XPATH

Subject: RE: combining two variables to generate XPATH
From: "Robert Koberg" <rob@xxxxxxxxxx>
Date: Tue, 17 Dec 2002 14:54:59 -0800
xpath variable select
Hi bix,

I think everyone is getting caught up in your explicit question :) and not
understanding what you want, or perhaps I am missing something...

Based on previous examples:
concat($node,'/',$type,'/item') -- assuming $type is the name of an element
select="'someBranch'" -- assuming 'someBranch' is the name of an element

this is very simple to solve in XSLT 1.0, as I posted earlier:

<xsl:template name="foo">
  <xsl:param name="node"/>
  <xsl:param name="branch" select="'someBranch'"/>
  <xsl:for-each select="$node/*[name()=$branch]/leaf">
    <xsl:value-of select="@id" />
  </xsl:for-each>
</xsl:template>

best,
-Rob


> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Michael Kay
> Sent: Tuesday, December 17, 2002 1:55 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE:  combining two variables to generate XPATH
>
>
> > Is that FAQ outdated??  I know that the following code works
> > just fine:
> >
> > <xsl:template match="proc">
> >   <xsl:call-template name="foo">
> >     <xsl:with-param name="node" select="." />
> >   </xsl:call-template>
> > </xsl:template>
> >
> > <xsl:template name="foo">
> >   <xsl:param name="node"/>
> >   <xsl:for-each select="$node/branch/leaf">
> >     <xsl:value-of select="@id" />
> >   </xsl:for-each>
> > </xsl:template>
> >
> > What is different about a path with a single variable, and a
> > path with two
> > variables?  Why can't I specify a second variable:
> >
> > <xsl:template name="foo">
> >   <xsl:param name="node"/>
> >   <xsl:param name="branch" select="'someBranch'"/>
> >   <xsl:for-each select="$node/$branch/leaf">
> >     <xsl:value-of select="@id" />
> >   </xsl:for-each>
> > </xsl:template>
> >
>
> The first step in a path expression can be any expression that returns a
> node-set. The value of $node is a node-set. In XPath 2.0, subsequent
> steps can also be expressions that return a node-set. But they can't be
> expressions that return strings: the value of $branch is not a node-set,
> it is a string.
>
> XPath variables represent values, they aren't macros that represent
> parts of an expression.
>
> Michael Kay
> Software AG
> home: Michael.H.Kay@xxxxxxxxxxxx
> work: Michael.Kay@xxxxxxxxxxxxxx
> >
> >
> > >From: Mark Wilgus <mwilgus@xxxxxxxxx>
> > >
> > >I believe this is not possible.  XSLT doesn't allow you
> > >to use a variable for an XPath expression.  See number 2 at the
> > >following list:
> > >
> > >http://www.dpawson.co.uk/xsl/sect2/nono.html
> > >
> > > > -----Original Message-----
> > > > From: bix xslt [mailto:bix_xslt@xxxxxxxxxxx]
> >
> > > > >        <xsl:variable name="branch"
> > > > >select="concat($node,'/',$type,'/item')" />
> > > > >        <xsl:value-of select="$branch" />
> > > > ><!--        <xsl:for-each select="$branch">
> > > >
> >
> >
> >
> > _________________________________________________________________
> > Protect your PC - get McAfee.com VirusScan Online
> > http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
> >
> >
> >  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> >
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 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.