xhtml2hdoc.xsl 2.08 KB
Newer Older
Jean Vintache's avatar
Jean Vintache committed
1
2
3
4
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
qaomia's avatar
qaomia committed
5
    xmlns="http://www.utc.fr/ics/hdoc/xhtml"
qaomia's avatar
fixes  
qaomia committed
6
    version="2.0">
qaomia's avatar
qaomia committed
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    <xsl:output method="xml" indent="yes"></xsl:output>
    
    <xsl:template match="html">
        <html>
            <head>
                <title><xsl:value-of select="/html/head/title"/></title>
                <meta charset="utf-8"/>
            </head>
            <body>
                <section>
                    <header>
                        <h1>Contenu</h1>
                    </header>
                    <div>
21
                        <p><xsl:value-of select="/html/body/div"></xsl:value-of></p>
qaomia's avatar
qaomia committed
22
23
24
25
26
                    </div>
                </section>
            </body>
        </html>
    </xsl:template>
27
28
    <xsl:template match="div/a">
        <p><a href="{.}"><xsl:value-of select="text()"/></a></p>
qaomia's avatar
qaomia committed
29
    </xsl:template>
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
    <xsl:template match="div/ol">
        <ol>
            <xsl:apply-templates select="*"></xsl:apply-templates>
        </ol>
    </xsl:template>
    <xsl:template match="li">
        <li>
            <xsl:choose>
                <xsl:when test="count(*) = 0"> <!-- Si la liste n'a pas de mise en forme (n'a pas de balises filles) et ne contient que du texte, on récupère le texte -->
                    <p><xsl:value-of select="."/></p>
                </xsl:when>
                <xsl:otherwise> <!-- Si mise en forme, on relance les règles-->
                    <xsl:apply-templates select="*"/>
                </xsl:otherwise>
            </xsl:choose>
        </li>
    </xsl:template>
    <xsl:template match="div/ul">
        <ul>
            <xsl:apply-templates select="*"></xsl:apply-templates>
        </ul>
    </xsl:template>
    <xsl:template match="em|strong|s">
        <p><em><xsl:value-of select="."/></em></p>
    </xsl:template>
    <xsl:template match="li/br">
        <p/>
    </xsl:template>
58
59
60
    <xsl:template match="*">
        <xsl:comment>Error</xsl:comment>
    </xsl:template>
61
    
qaomia's avatar
qaomia committed
62
</xsl:stylesheet>