Subject: RE: [xsl] Param Element From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 3 Jun 2005 04:26:56 +0100 |
> Michael: the content of the source xml is the persisted state of the > supplied xm data param. That tells me absolutely nothing about the structure of either. Let's be concrete. Is the outermost element of your source XML caled <row> or is it called <in_proc>? If it's called <row> then I can point to one set of errors in your stylesheet, if it's called <in_proc> then I can point to a different set. It's possible that your stylesheet is written to allow it to be either, but that seems unlikely. Michael Kay http://www.saxonica.com/ xm data param may or may not contain new > data. This data is appended to the xml source when it is new. There > is an id column named "activityid" which allows me a guarantee of > unique matches. > > > > > On 6/2/05, David Carlisle <davidc@xxxxxxxxx> wrote: > > > > It is working... > > > > This seems unlikely. > > > > 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> > > > > > > > > > > > > <xsl:apply-templates select="row"/> > > <xsl:template match="row"> > > <xsl:copy-of select="."/> > > </xsl:template> > > > > is equivalent (but slower, probably) to > > <xsl:copy-of select="row"/> > > it just copies all the row elements. In this case however it prduces > > nothing as there are no row element children of the current > node (the > > only child of / is a in_proc element (I guess, you have not > shown your > > input format) > > > > <xsl:if test="$current_id = $activity_id"> > > this test is always true (given the default value of $xm) > as $current_id > > is an attribute node from the set $activity_id > > Even if you supply an xm parameter so that the tests may be false, > > > > <xsl:apply-templates select="$xm/row" mode="append"/> > > <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> > > > > is equivalent to > > > > <xsl:copy-of select="$xm/row[@id = $activity_id]"/> > > > > 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Param Element, Karl Stubsjoen | Thread | Re: [xsl] Param Element, Karl Stubsjoen |
Re: [xsl] Recursive Template ??, Mukul Gandhi | Date | Re: [xsl] Param Element, Karl Stubsjoen |
Month |