xsl-list
[Top] [All Lists]

Re: Param Element

2005-06-02 14:51:23
It is working...
I'm still a little confused on the parm(s) but no worries!

On 6/2/05, Karl Stubsjoen <kstubs(_at_)gmail(_dot_)com> 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(_at_)nag(_dot_)co(_dot_)uk> 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
________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>