[xsl] Re: Excluding one particular attribute(namespace) when copying elements

Subject: [xsl] Re: Excluding one particular attribute(namespace) when copying elements
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Fri, 31 Oct 2003 22:25:15 +0100
> I need to copy different element to output. For all
> the elements I need to exclude the namespace attribute
> when i use "xsl:copy-of" or "xsl:copy". It seems
> difficult to specify this in XSLT. Any comment would
> be appreciated!

Use something like this:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:output omit-xml-declaration="yes"/>

  <xsl:template match="t">
    <xsl:element name="{name()}">
      <xsl:copy-of select="namespace::*[not(. = 'b')]"/>
      <xsl:copy-of select="@* | node()"/>
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>

When this transformation is applied on the following source.xml:

     <t xmlns:a="a" xmlns:b="b"/>

the result is:

     <t xmlns:a="a"/>

so the namespace "b" has been excluded.


Hope this helped.


=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread