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]

Re: Returning from a call-template or breaking a for-each



> I have written a template looping through a (xt-)node-set and looking for
> a node with a given id:

But why loop through all the other nodes if you don't want to process
them?

    <xsl:for-each select="xt:node-set($allbookmarks)/BookmarkElement">
        <xsl:if test="$bid=Heading/@BookmarkID">
            <xsl:value-of select="File" /> 
            #
            <xsl:value-of select="normalize-space ($bid)" />
        </xsl:if>
    </xsl:for-each>

is equivalent to

            <xsl:value-of 
     select="xt:node-set($allbookmarks)/BookmarkElement[$bid=Heading/@BookmarkID]/File" /> 
            #
            <xsl:value-of select="normalize-space ($bid)" />



> Now I want to return from this template when I have found the node. Is
> there a way to achive this?

where do you want to return to?

In answer to the question in the subject line, you can't break a
for-each loop, but you don't need to, you just select the nodes that
you want to loop over in advance. Since the input tree never changes
you should be able to work out which modes you want to loop over before
starting the loop.

David


 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]