At 11:01 01/05/2003 -0400, you wrote:
so instead of
<p>p line</p>
I just need to have
p line
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