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
|