Re: [xsl] Param Element

Subject: Re: [xsl] Param Element
From: Karl Stubsjoen <kstubs@xxxxxxxxx>
Date: Thu, 2 Jun 2005 14:51:23 -0700
It is working...
I'm still a little confused on the parm(s) but no worries!

On 6/2/05, Karl Stubsjoen <kstubs@xxxxxxxxx> wrote:
> Here is what I have, but not confident that it is working... it seems
> that my check for uniqueness is failing, I get no results.  Isn't it a
> fair test to ask of a value it it exists in a set of values as I am
> here:
>  <xsl:if test="$current_id = $activity_id">
> Where activity_id is a set of ID values as defined below..
>
> <xsl:param name="xm" select="in_proc" />
>
> <xsl:variable name="activity_id" select="in_proc/row/@id"/>
>
> <xsl:template match="/">
>  <in_proc>
>  <xsl:apply-templates select="row"/>
>  <xsl:apply-templates select="$xm/row" mode="append"/>
>  </in_proc>
> </xsl:template>
>
> <xsl:template match="row">
>  <xsl:copy-of select="."/>
> </xsl:template>
>
> <xsl:template match="row" mode="append">
>  <xsl:variable name="current_id" select="@id"/>
>  <xsl:if test="$current_id = $activity_id">
>    <xsl:copy-of select="."/>
>  </xsl:if>
> </xsl:template>
>
> </xsl:stylesheet>
>
>
>
> On 6/2/05, David Carlisle <davidc@xxxxxxxxx> wrote:
> >
> > > One other dilemna:  in order for the transformation to not complain, I
> > > have to do a select on my parameter declerations which looks like:
> >
> > > <xsl:param name="xm" select="/" />
> >
> > If you pass in a value of this parameter then the select here is not
> > used, it is just a default value in case no parameter is supplied when
> > the stylesheet is called.
> >
> >
> >
> > > But since the source is the exact same as the parameter xml, how does
> > > the select know which source to grab from?
> >
> > The select is always explictly into a specified node set that node set
> > will have nodes from one or more documents (usually just one).
> > in this case, you have select="/" so that selects the root node ancestor
> > of the current node. If this is at the top level of teh stylesheet the
> > current node is the root node of the main input document, so / selects
> > that node.
> >
> > > Also, the above causes an
> > > overflow when the below transformation is processed,
> >
> > most likely you have programmed an infinite loop, but it's hard to say
> > given the snippet you showed.
> >
> >
> > > so would it be correct to express select as:  select="in_proc"?
> > That's also correct (but dofferent of course) but still if you supply a
> > value to this parameter when you run the program it doesn't matter what
> > select expression you use here.
> >
> > The templates that you show make no use of this parameter??
> >
> > As written you will get a copy of the input doc except the top level
> > element will be duplicated as you generate an in_proc element in the
> > template for / and then apply templates to the child nodees (which is
> > the in_proc element in the source) which are copied.
> >
> >
> > David
> >
> > ________________________________________________________________________
> > This e-mail has been scanned for all viruses by Star. The
> > service is powered by MessageLabs. For more information on a proactive
> > anti-virus service working around the clock, around the globe, visit:
> > http://www.star.net.uk
> > ________________________________________________________________________

Current Thread