Difference between revisions of "SampleXSLTPage"

From TEIWiki
Jump to navigation Jump to search
(Sample XSLT Script page.)
 
m (sorting in category)
 
(3 intermediate revisions by 2 users not shown)
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.
  
 +
== 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 ==
 
&lt;pre&gt;
 
&lt;pre&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">
Line 32: Line 51:
  
 
[[Category:XSLT]]
 
[[Category:XSLT]]
 +
 
</pre>
 
</pre>
 +
[[Category:XSLT|!]]

Latest revision as of 01:21, 26 September 2007

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]]