[Home] [By Thread] [By Date] [Recent Entries]
At 11:01 01/05/2003 -0400, you wrote:
Hi, I wasn't totally clear about exactly the output you wanted. Here is a stylesheet which will get rid of the <p> element for you. With an <xsl:copy-of> which you had in your code you will copy all descendant nodes, which isn't what you wanted. Try this stylesheet. <?xml version='1.0'?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:output method="xml" indent="yes" encoding="UTF-8" /> <xsl:template match="/"> <xsl:apply-templates select="*" /> </xsl:template> <xsl:template match="*"> <xsl:copy> <xsl:apply-templates select="*" /> </xsl:copy> </xsl:template> <xsl:template match="p"> <xsl:apply-templates /> </xsl:template> </xsl:stylesheet> The <xsl:copy> element copies the elements you want but not any descendants. The <xsl:apply-templates> then processes child nodes. By having a separate template for the <p> element node which has no <xsl:copy> then you get rid of the unwanted <p> element but by using <xsl:apply-templates > you get the child text node that you want. If you had attributes in the source document then you would need to copy those explicitly. I hope that helps. Andrew Watt XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|

Cart



