For the same problem I'm using this pure XSL solution

    <xsl:template match="*" priority="-1" mode="copy">
        <xsl:element name="{name()}">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates mode="copy"/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="text()" mode="copy">
        <xsl:value-of select="normalize-space(.)"/>
    </xsl:template>

The weight on performance could be balanced by finer handling of nodes.

----- Original Message -----
From: "Lai, Harry" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, July 01, 2002 4:54 PM
Subject: RE: How to remove namespace declarations and prefixes?


> Hi Richard,
>
> I also had this same problem.  I did some reading, and according to
Michael
> Kay's XSLT Programmer's Reference:
>
> "The xsl:exclude-result-prefixes and exclude-result-prefixes attributes
> apply only to namespace nodes copied from the stylesheet using literal
> result elements.  They do not affect namespace nodes copied from the
source
> document using <xsl:copy> or <xsl:copy-of>: there is no way of suppressing
> these."
>
> Unfortunately, since xslt's will often have a catch-all template matcher
to
> copy elements it doesn't transform, this comes up quite a bit.
>
> So... what I ended up doing was extending the HTMLSerializer (or whatever
> serializer you're using for your pipelines), and overriding the
> startPrefixMapping and endPrefixMapping methods to do nothing, effectively
> removing all namespaces from my HTML.  This also had the added benefit of
> having no performance penalties (and theoretically, a ever-so-slight
speedup
> since we no longer process namespaces in our serializer).
>
> You could make this more general, and use the serializer's configuration
to
> declare which namespaces you want to exclude, but excluding all worked
well
> for us, especially since we were outputting HTML.
>
> Hope that helps!
>
> Harry
>



---------------------------------------------------------------------
Please check that your question  has not already been answered in the
FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>

To unsubscribe, e-mail:     <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>

Reply via email to