xsl-list
[Top] [All Lists]

RE: Removing namespace attributes

2005-09-22 04:59:52
exclude-result-prefixes only affects the namespaces created using literal
result elements. It has no effect on namespaces copied from the source
document using xsl:copy or xsl:copy-of.

XSLT 2.0 provides a copy-namespaces=yes|no attribute on these instructions.
In 1.0 you have to switch from using xsl:copy to using an modified-identity
template with xsl:element name="{local-name()}".

Rather than this:

<xsl:template match="@* | node()">
     <xsl:if test="name()!='xlink:href'">
       <xsl:copy>
         <xsl:apply-templates select="@* | node()" />
       </xsl:copy>
     </xsl:if>
   </xsl:template>

it's much cleaner to do this:

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

<xsl:template match="@xlink:href"/>

Apart from anything else, it doesn't depend on the document author's choice
of namespace prefix.


Michael Kay
http://www.saxonica.com/

-----Original Message-----
From: Hank Ratzesberger [mailto:hankr(_at_)crustal(_dot_)ucsb(_dot_)edu] 
Sent: 22 September 2005 01:31
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Removing namespace attributes

I want to strip all namespaces and one 
attribute (declared in the namespace).

In my stylesheet, I declare the namespaces
and then list them in the exclude-result-prefixes.
But it doesn't work.  The namespaces remain.

Thank you for your ideas,
Hank

Hank Ratzesberger
NEES Programmer
Institute for Crustal Studies
University of California, Santa Barbara


<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  xmlns:flextps="http://flextps.org/schema/";
  xmlns:xlink="http://www.w3.org/1999/xlink";
  exclude-result-prefixes="flextps">
  <xsl:template match="@* | node()">
     <xsl:if test="name()!='xlink:href'">
       <xsl:copy>
         <xsl:apply-templates select="@* | node()" />
       </xsl:copy>
     </xsl:if>
   </xsl:template>
</xsl:stylesheet>






--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>