root/šablona/makra/tabulka.xsl @ 61:9503eb8377f1

Revision 61:9503eb8377f1, 2.2 KB (checked in by František Kučera <franta-hg@…>, 13 years ago)

Licence: informace o licenci v každém souboru.

RevLine 
[51]1<?xml version="1.0" encoding="UTF-8"?>
[61]2<!--
3XML Web generátor – program na generování webových stránek
4Copyright © 2012 František Kučera (frantovo.cz)
5
6This program is free software: you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation, either version 3 of the License, or
9(at your option) any later version.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with this program.  If not, see <http://www.gnu.org/licenses/>.
18-->
[51]19<xsl:stylesheet version="2.0"
20        xmlns="http://www.w3.org/1999/xhtml"
21        xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
22        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
23        exclude-result-prefixes="m">
24           
25        <!--
26                Jednoduché tabulky
27                ******************
28                Data zadáváme do těla elementu.
29                Sloupce oddělujeme tabulátorem (může jich být víc, minimálně však jeden, mezery nestačí).
30                První řádek se považuje za záhlaví (nadpisy sloupců).
31                *
32        -->
33    <xsl:template match="m:tabulka">
34        <table>
35                <xsl:variable name="data" select="replace(replace(text(), '^\s+', ''),'\s+$','')"/>
36                <xsl:variable name="hlavička" select="substring-before($data, '&#10;')"/>
37                <xsl:variable name="tělo" select="substring-after($data, '&#10;')"/>
38                <thead>
39                        <tr>
40                                <xsl:for-each select="tokenize($hlavička, '\t+')">
41                                        <xsl:if test="normalize-space(.)">
42                                                        <td><xsl:value-of select="normalize-space(.)"/></td>
43                                                </xsl:if>
44                                        </xsl:for-each>
45                        </tr>
46                </thead>
47                <tbody>
48                                <xsl:for-each select="tokenize($tělo, '\n')">
49                                        <xsl:if test="normalize-space(.)">
50                                                <tr>
51                                                        <xsl:for-each select="tokenize(., '\t+')">
52                                                                <xsl:if test="normalize-space(.)">
53                                                                        <td><xsl:value-of select="normalize-space(.)"/></td>
54                                                                </xsl:if>
55                                                        </xsl:for-each>
56                                                </tr>
57                                        </xsl:if>
58                                </xsl:for-each>
59                </tbody>
60        </table>   
61    </xsl:template>
62
63</xsl:stylesheet>
64
Note: See TracBrowser for help on using the browser.