SampleXSLTPage

From TEIWiki
Jump to navigation Jump to search

The exact textual content of the original version of the Remove-Namespaces.xsl is as follows:

== Summary ==
This is a quick XSLT script for removing the namespaces from any document.
It will remove the prefix as well.  I think I picked it up off the XSL-List 
run by mulberry-tech.  This is sometimes a good first step to remove namespaces 
from a set of files some of which use namespaces and some of which don't. 

Add any comments to the 'discussion' tab.

== Required Input ==

This document will take any XML file, not just TEI XML, and remove a namespace from it if it exists. 
 If there are entities in the document, these will naturally be expanded.

== Expected Output ==

Same document, but with the namespaces and namespace prefix removed.

== Known Restrictions or Problems ==
 Obviously, if you need the namespaces then this might not be as useful to you.  For example, where 
you have documents which use elements from different namespaces with the exact same local-name (for example,
 TEI's <title> and HTML's <title> then flattening the document to remove
 namespaces would be problematic.


== Stylesheet ==
<pre>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no"/>

<xsl:template match="/|comment()|processing-instruction()">
    <xsl:copy>
      <xsl:apply-templates/>
    </xsl:copy>
</xsl:template>

<xsl:template match="*">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates select="@*|node()"/>
    </xsl:element>
</xsl:template>

<xsl:template match="@*">
    <xsl:attribute name="{local-name()}">
      <xsl:value-of select="."/>
    </xsl:attribute>
</xsl:template>
</xsl:stylesheet>
</pre>

[[Category:XSLT]]