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: "Breaking Out" of an xsl transformation


I'm not sure I fully understand what you're trying to do, but
it sounds like one other approach that might work is simply
to start your processing off based on 'ignore' not being 
present. This uses two templates, rather than one.  
Using your example, it might look something like this:

<!-- this template matches the nodes you want to ignore
     and does nothing. So it 'skips' them -->
<xsl:template match="basenode[head/tag/@action='ignore']">
</xsl:template>

<!-- this template matches all basenode nodes that aren't 
     marked to ignore -->
<xsl:template match="basenode[not(head/tag/@action='ignore')]">
<!-- do your processing -->
   <xsl:apply-templates/>
 </xsl:template>

Sara

> -----Original Message-----
> From: tshenton@lycos-inc.com [mailto:tshenton@lycos-inc.com]
> Sent: Friday, September 29, 2000 8:32 AM
> To: xsl-list@mulberrytech.com
> Cc: mmodrall@lycos-inc.com
> Subject: "Breaking Out" of an xsl transformation
> 
> 
> 
> 
> 
> 
> We are converting an XML document to another type of xml 
> document based.  Based
> on data discovered in the process, we do not what to do any 
> further processing.
> The question how does one do that so no the XSLT processor 
> does not output
> anything.  I've enclosed a snippet that does not do a 
> transform if the "ignore"
> tag exists, but it still produces the "<?xml?>" node.  We 
> figured we could do a
> little walk after the processing is done to see if the tree 
> is *only* a root
> node and drop it if so, but we were hoping for a more 
> meta-"drop the whole
> thing" solution.
> 
> Make sense, Any ideas?
> 
> Thanks  much, Tim
> 
> -----------------------------
> 
> <?xml version="1.0"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>                 xmlns:lxslt="http://xml.apache.org/xslt"
>                 version="1.0">
> 
> 
> <xsl:template match="basenode">
>   <xsl:if test="not(./head/tag[@action = 'ignore'])">
>     do your processing
>   <xsl:apply-templates/>
>   </xsl:if>
> </xsl:template>
> ...
> 
> 
> 
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 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]