This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Repeated Recursion on different parts of a tree


Ok cheers David.

I actually Have a template match to root '/' and then 
within this a <for-each> on all of the register nodes which 
calls the template .

To rule out the possibility of my template being called in 
the wrong place i did a few sanity checks when it was 
called -  like to display the current @name of the register
and also some details of the first Bitfield[1] etc...
(shifter has also been tested independantly and returns 
valid results).

I mean looking at the choose statement itself, should this 
behave as you can see -  by processing up to and including 
the last <bitfield> node, and then stopping displaying the 
results?

Is there any problems that spring to your mind that I can 
explore? The only conclusive problem that I can see is the 
<choose> statement is not valid, but again I have reviewed 
a lot of material and the conditional statement seems to be 
what I need?


Thankyou 

PD

 



On Fri, 4 Oct 2002 15:06:20 +0100 David Carlisle 
<davidc@nag.co.uk> wrote:

> 
> > My XML and XSL for reference:
> It's not enough to go on.
> I padded it out to
> 
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
> 
> 
> <xsl:template match="register">
> <xsl:call-template name="calcInitialValue">
> <xsl:with-param name="newNode" select="bitfield[1]"/>
> </xsl:call-template>
> </xsl:template>
> 
>  <xsl:template name="calcInitialValue">
>   <xsl:param name="initialValue" /> 
>   <xsl:param name="newNode" /> 
>   <xsl:variable name="bitfieldInitialValue">
>    <xsl:call-template name="shifter">
>     <xsl:with-param name="Answer"
> select="$newNode/initialvalue" /> 
>     <xsl:with-param name="decimalBitPos" 
> select="$newNode/bitpos" /> 
>    </xsl:call-template>
>   </xsl:variable>
>   <xsl:variable name="newValue" select="$bitfieldInitialValue + $initialValue" /> 
>    <xsl:choose>
>     <xsl:when test="following-sibling::bitfield">
>      <xsl:call-template name="calcInitialValue">
>       <xsl:with-param name="initialValue" 
> select="$newValue" /> 
>       <xsl:with-param name="newNode" 
> select="following-sibling::bitfield[1]" /> 
>      </xsl:call-template>
>     </xsl:when>
>    <xsl:otherwise>
>     <xsl:value-of select="$newValue" /> 
>    </xsl:otherwise>
>   </xsl:choose>
>  </xsl:template>
> 
> </xsl:stylesheet>
> 
> and got
> 
> $ saxon try1.xml try1.xsl
> Error at xsl:call-template on line 16 of file:/c:/tmp/try1.xsl:
>   No template exists named shifter
> Transformation failed: Failed to compile stylesheet. 1 error detected.
> 
> 
> at which point I gave up.
> 
> David
> 
> _____________________________________________________________________
> This message has been checked for all known viruses by Star Internet
> delivered through the MessageLabs Virus Scanning Service. For further
> information visit http://www.star.net.uk/stats.asp or alternatively call
> Star Internet for details on the Virus Scanning Service.
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 

----------------------
Peter Doggett
ee99ppd@brunel.ac.uk


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]