Commit c5f8e382 authored by frabad's avatar frabad
Browse files

simple HTML demo XSLT

parent 4c96de13
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="html">
<!--
feuille de transformation journalarticle > HTML
-->
<xsl:output
method="xml" encoding="UTF-8" indent="no" omit-xml-declaration="yes"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
<xsl:strip-space elements="*"/>
<xsl:param name="lang"/>
<xsl:template match="*">
<div class="{local-name()}">
<xsl:apply-templates/>
</div>
</xsl:template>
<xsl:template match="article">
<html>
<xsl:apply-templates />
</html>
</xsl:template>
<xsl:template match="corps">
<body>
<xsl:attribute name="class">article</xsl:attribute>
<xsl:apply-templates select="../tête/titre"/>
<div><xsl:apply-templates select="../tête/image"/></div>
<xsl:apply-templates select="../tête/résumé"/>
<xsl:apply-templates />
</body>
</xsl:template>
<xsl:template match="tête">
<head>
<title>
<xsl:value-of select="normalize-space(titre)"/>
</title>
<xsl:apply-templates select="sujets"/>
<!--lie une FdS CSS externe-->
<link rel="stylesheet" type="text/css" href="article.css" />
<!--introduit des propriétés CSS dans la sortie HTML-->
<style type="text/css">
body{
font-family: sans;
margin-left: 10%;
margin-right: 10%;
}
p{
text-align: justify;
}
div.résumé{
font-style: italic;
}
</style>
</head>
</xsl:template>
<xsl:template match="tête/titre">
<h1><xsl:apply-templates/></h1>
</xsl:template>
<xsl:template match="tête/image">
<img src="{@url}">
<xsl:attribute name="alt">
<xsl:value-of select="légende"/>
</xsl:attribute>
</img>
</xsl:template>
<xsl:template match="sujets">
<meta name="keywords">
<xsl:attribute name="content">
<xsl:apply-templates/>
</xsl:attribute>
</meta>
</xsl:template>
<xsl:template match="sujet">
<xsl:apply-templates/>
<xsl:if test="position() != last()">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:template>
<xsl:template match="section/titre">
<h2><xsl:apply-templates/></h2>
</xsl:template>
<xsl:template match="paragraphe">
<p>
<xsl:apply-templates />
</p>
</xsl:template>
<xsl:template match="citation">
<xsl:param name="contenu">
<xsl:apply-templates/>
</xsl:param>
<xsl:param name="q.open">
<xsl:choose>
<xsl:when test="lang('fr')">«&#x202F;</xsl:when>
<xsl:when test="lang('it')">«&#x202F;</xsl:when>
<xsl:otherwise>&#8220;</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="q.close">
<xsl:choose>
<xsl:when test="lang('fr')">&#x202F;»</xsl:when>
<xsl:when test="lang('it')">&#x202F;»</xsl:when>
<xsl:otherwise>&#8221;</xsl:otherwise>
</xsl:choose>
</xsl:param>
<em class="citation"><xsl:value-of select="concat($q.open,$contenu,$q.close)"/></em>
</xsl:template>
<xsl:template match="lien">
<a>
<xsl:attribute name="href">
<xsl:value-of select="@url" />
</xsl:attribute>
<xsl:apply-templates />
</a>
</xsl:template>
<xsl:template match="emphase">
<em>
<xsl:apply-templates />
</em>
</xsl:template>
</xsl:transform>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment