Statistics
| Revision:

root / tmp / org.txm.core / res / org / txm / xml / xsl / txm-filter-teicorpustextgrid-xmlw.xsl @ 187

History | View | Annotate | Download (4.1 kB)

1
<?xml version="1.0"?>
2
<xsl:stylesheet xmlns:edate="http://exslt.org/dates-and-times"
3
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tei="http://www.tei-c.org/ns/1.0"
4
  xmlns:xd="http://www.pnp-software.com/XSLTdoc"
5
  xmlns:txm="http://textometrie.org/1.0"
6
  exclude-result-prefixes="tei edate" version="2.0">
7

    
8
  <xsl:output method="xml" encoding="utf-8" omit-xml-declaration="no"/>
9
  
10
  <xd:doc type="stylesheet">
11
    <xd:short>
12
      This stylesheet prepares TextGrid TEI corpus for TXM xml/w import module
13
    </xd:short>
14
    <xd:detail>
15
      This stylesheet is free software; you can redistribute it and/or
16
      modify it under the terms of the GNU Lesser General Public
17
      License as published by the Free Software Foundation; either
18
      version 3 of the License, or (at your option) any later version.
19
      
20
      This stylesheet is distributed in the hope that it will be useful,
21
      but WITHOUT ANY WARRANTY; without even the implied warranty of
22
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
23
      Lesser General Public License for more details.
24
      
25
      You should have received a copy of GNU Lesser Public License with
26
      this stylesheet. If not, see http://www.gnu.org/licenses/lgpl.html
27
    </xd:detail>
28
    <xd:author>Alexei Lavrentiev alexei.lavrentev@ens-lyon.fr</xd:author>
29
    <xd:copyright>2014, CNRS / ICAR (CACTUS)</xd:copyright>
30
  </xd:doc>
31
  
32
  
33
  
34
<!-- Partie générale : on copie les éléments, les attributs, le texte, les commentaires, on supprime mes prrocessing intstructions -->
35
<!-- + nommage auto des fichiers -->
36
  
37
  <xsl:variable name="filedir">
38
    <xsl:analyze-string select="document-uri(.)" regex="^(.*)/([^/]+)$">
39
      <xsl:matching-substring>
40
        <xsl:value-of select="regex-group(1)"></xsl:value-of>
41
      </xsl:matching-substring>
42
    </xsl:analyze-string></xsl:variable>
43
  
44
  
45
  <xsl:template match="/">
46
  	<note>See output files in the OUT directory</note>
47
  	<xsl:for-each select="descendant::tei:TEI">
48
  		<xsl:variable name="author"><xsl:value-of select="tei:teiHeader[1]/tei:fileDesc[1]/tei:sourceDesc[1]/tei:biblFull[1]/tei:titleStmt[1]/tei:author[1]"></xsl:value-of></xsl:variable>
49
  		<xsl:variable name="authorNorm"><xsl:value-of select="replace($author,'[, ]','')"/></xsl:variable>
50
  		<xsl:variable name="title"><xsl:value-of select="tei:teiHeader[1]/tei:fileDesc[1]/tei:titleStmt[1]/tei:title[1]"></xsl:value-of></xsl:variable>
51
  		<xsl:variable name="titleNorm"><xsl:value-of select="replace($title,'[, \[\]]','')"/></xsl:variable>
52
  		<xsl:variable name="creationDate"><xsl:choose>
53
  			<xsl:when test="tei:teiHeader[1]/tei:profileDesc[1]/tei:creation[1]/tei:date[1]/@when">
54
  				<xsl:value-of select="tei:teiHeader[1]/tei:profileDesc[1]/tei:creation[1]/tei:date[1]/@when"/>
55
  			</xsl:when>
56
  			<xsl:when test="tei:teiHeader[1]/tei:profileDesc[1]/tei:creation[1]/tei:date[1]/@notAfter">
57
  				<xsl:value-of select="tei:teiHeader[1]/tei:profileDesc[1]/tei:creation[1]/tei:date[1]/@notAfter"/>
58
  			</xsl:when>
59
  			<xsl:when test="tei:teiHeader[1]/tei:profileDesc[1]/tei:creation[1]/tei:date[1]/@notBefore">
60
  				<xsl:value-of select="tei:teiHeader[1]/tei:profileDesc[1]/tei:creation[1]/tei:date[1]/@notBefore"/>
61
  			</xsl:when>
62
  			<xsl:otherwise>9999</xsl:otherwise>
63
  		</xsl:choose>
64
  		</xsl:variable>
65
  		<xsl:result-document href="{$filedir}/out/{$creationDate}{$authorNorm}{$titleNorm}.xml">
66
  			<xsl:copy>
67
  				<xsl:copy-of select="@*"/>
68
  				<xsl:comment>teiHeafer deleted for TXM xml/w import module</xsl:comment>
69
  				<xsl:element name="text" namespace="http://www.tei-c.org/ns/1.0">
70
  					<xsl:attribute name="author"><xsl:value-of select="$author"/></xsl:attribute>
71
  					<xsl:attribute name="title"><xsl:value-of select="$title"/></xsl:attribute>
72
  					<xsl:attribute name="creationDate"><xsl:value-of select="$creationDate"/></xsl:attribute>
73
  					<xsl:for-each select="tei:text/*">
74
  						<xsl:copy-of select="."/>
75
  					</xsl:for-each>
76
  				</xsl:element>
77
  			</xsl:copy>
78
  		</xsl:result-document>
79
  	</xsl:for-each>  
80
  </xsl:template>
81
  
82
</xsl:stylesheet>