RE: [xsl] Removing elements based on contents

Subject: RE: [xsl] Removing elements based on contents
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sat, 24 Jun 2006 15:40:50 +0100
In XSLT you don't remove the elements you want to lose, you copy the
elements you want to keep. So:

<xsl:template match="Root">
  <xsl:copy>
    <xsl:copy-of select="Story[.='End Here']/following-sibling::*"/>
  </xsl:copy>
</xsl:template>

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Chad Chelius [mailto:cchelius@xxxxxxxxxxxxxxx] 
> Sent: 24 June 2006 13:04
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Removing elements based on contents
> 
> I have an XML file that looks something like this:
> 
> <Root>
> 	<Story>Content</Story>
> 	<Story>More Content</Story>
> 	<Story>End Here</Story>
> 	<Story>Good stuff that I want</Story>
> </Root>
> 
> My question is: Is there a way using XSLT to remove all 
> elements up to and including the one who's content contains 
> <Story>End Here</ 
> Story> and leave the rest intact? Basically everything from the top
> of the XML file down to and including that tag is junk that I 
> don't want to include in the file but the rest of it I want 
> to keep. I don't think XSLT traverses I file in that way 
> though. Does anyone have any ideas?

Current Thread