SampleXSLTPage: Difference between revisions

From TEIWiki
Jump to navigation Jump to search
No edit summary
m Updated
Line 1: Line 1:
The exact textual content of the original version of the [[Remove-Namespaces.xsl]] is as follows:
The exact textual content of the original version of the [[Remove-Namespaces.xsl]] is as follows:
<pre>
<pre>
== Summary ==
This is a quick XSLT script for removing the namespaces from any document.
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  
It will remove the prefix as well.  I think I picked it up off the XSL-List  
run by mulberry-tech.   
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.
Add any comments to the 'discussion' tab.


&lt;pre&gt;
== 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 <nowiki><title></nowiki> and HTML's <nowiki><title></nowiki> then flattening the document to remove
namespaces would be problematic.
 
 
== Stylesheet ==
&ltpre&gt;
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no"/>
<xsl:output method="xml" indent="no"/>
Line 32: Line 51:


[[Category:XSLT]]
[[Category:XSLT]]
</pre>
</pre>
[[Category:XSLT]]
[[Category:XSLT]]

Revision as of 14:18, 21 April 2005

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 ==
&ltpre>
<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]]