Re: XSL: Returning a selected node in the context of it's ancestors

Subject: Re: XSL: Returning a selected node in the context of it's ancestors
From: "Clark C. Evans" <clark.evans@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 20 Oct 1999 08:09:31 -0400 (EDT)
Oh... that's pretty.

On Wed, 20 Oct 1999, David Carlisle wrote:
> Two solutions have already been posted, but this is shorter
> and possibly also does the right thing.
> 
> David
> 
> <?xml version="1.0"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>                  version="1.0">
> 
> <xsl:output method="xml"/>
> 
> <xsl:variable name="x" 
>               select="generate-id(/vendor/product/material[.='SiO2'])"/>
> 
> <xsl:template match="*">
> <xsl:if test="descendant-or-self::*[generate-id(.)=$x]">
> <xsl:copy>
> <xsl:copy-of select="@*"/>
> <xsl:apply-templates/>
> </xsl:copy>
> </xsl:if>
> </xsl:template>
> 
> </xsl:stylesheet>
> 
> 
> bash-2.01$ xt ansc.xml ansc2.xsl 
> <vendor name="james">
>  <product id="1234">
>   <material>SiO2</material>
>  </product>
>  
> </vendor>
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


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


Current Thread