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: David Carlisle <davidc@xxxxxxxxx>
Date: Wed, 20 Oct 1999 09:31:16 +0100 (BST)

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


Current Thread