Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - Newbie Question removing 'namespace elements' >Thread Next - Re: Newbie Question removing 'namespace elements' Re: Newbie Question removing 'namespace elements'To: NULL Date: 5/12/2008 1:02:00 PM allen davidson wrote: > 2. Remove the namespaces xmlns="http://webservices.ecircle-ag.com/ecm" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > My XML is: Where is the XML? > And my XSLT is: > > <?xml version="1.0" encoding="utf-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > exclude-result-prefixes="#default xsl xsi"> exclude-result-prefixes relates to prefixes in the stylesheet, not those in the XML input. > > <xsl:template match="/"> > <root> > <xsl:copy-of select="."></xsl:copy-of> > </root> > </xsl:template> > > </xsl:stylesheet> > > > The wrapping of <root></root> works but I cant strip out the namespaces (not > sure if i'm using the correct terminology here). Any Ideas (NB very new to > XML) xsl:copy-of copies the complete node including any namespace nodes. You need <xsl:template match="*"> <xsl:element name="{local-name()}"> <xsl:apply-templates select="@* | node()"/> </xsl:element> </xsl:template> to strip namespaces from elements and, if you want to strip namespaces from attributes as well <xsl:template match="@*"> <xsl:attribute name="{local-name()}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:template> otherwise <xsl:template match="@*"> <xsl:copy/> </xsl:template> -- Martin Honnen --- MVP XML http://JavaScript.FAQTs.com/ | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
