RE: [xsl] [XSLT 1.0] Replace namespace prefixes?

Subject: RE: [xsl] [XSLT 1.0] Replace namespace prefixes?
From: "Costello, Roger L." <costello@xxxxxxxxx>
Date: Thu, 24 Dec 2009 13:06:22 -0500
Ken Holman gave this solution to the "replace prefixes problem":

---------------------------------------------------
?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                version="1.0">

    <xsl:param name="use-this-prefix" />

    <xsl:template match="*[namespace-uri(.)]">

        <xsl:element name="{$use-this-prefix}:{local-name()}"
                     namespace="{namespace-uri(.)}">
            <xsl:apply-templates select="@*|node()"/>
        </xsl:element>

    </xsl:template>

    <xsl:template match="@*[namespace-uri(.)]">

        <xsl:attribute name="{$use-this-prefix}{local-name()}"
                       namespace="{namespace-uri(.)}">
            <xsl:value-of select="."/>
        </xsl:attribute>

    </xsl:template>


    <xsl:template match="@*|node()"><!--identity for all other nodes-->

        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>

    </xsl:template>

</xsl:stylesheet>
---------------------------------------------------

Wow! You da man Ken! That works beautifully. Thank you!

Happy Holidays!

/Roger

Current Thread