Résultats Dpt_13
Résultats Dpt_19
XSLT #1
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
xmlns="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output name="csv-out" method="text" encoding="UTF-8" media-type="text/csv"/>
<xsl:output indent="yes" method="html" encoding="UTF-8"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
<xsl:output name="css-out" indent="no" method="text" encoding="UTF-8" media-type="text/css"/>
<xsl:template match="/">
<xsl:message>Début de la transformation</xsl:message>
<html>
<head>
<link rel="stylesheet" type="text/css" href="semantic.min.css"/>
<link rel="stylesheet" href="style.css" media="all" type="text/css"/>
<link rel="shortcut icon" href="images/favicon.ico"/>
<link href="http://fonts.googleapis.com/css?family=Cinzel" rel="stylesheet"
type="text/css"/>
<!-- créer le lien vers le css. html est créé à côté du fichier exécutable. css aussi -->
<title>XML</title>
</head>
<body>
<div class="leaderboard" data-text="Leaderboard">
<h1>XML</h1>
<h4>Genevieve Bienvenue & Alexandre Cavalcante & Virginie Poadey</h4>
</div>
<div class="ui raised very padded text container segment">
<p>Nombre total d'accidents : <xsl:value-of select="count(//accident)"/>
</p>
<p>Nombre de personnes tuées qui n'avaient pas leur dispositif de sécurité :
<xsl:value-of
select="count(//gravite[text() = ' Tué' and following::securite/utilistion[text() = 'Non']])"
/>
</p>
<p>Nombre de personnes tuées qui étaient mineures : <xsl:value-of
select="count(//anNaissanceUsager[number(text()) > 1998 and preceding-sibling::gravite[text() = ' Tué']])"
/>
</p>
<p> Nombre d'hommes qui ont subi un accident en 2014 : <xsl:value-of
select="count(//accident[starts-with(@id, '2014')]/usagers/usager/sexe[text() = 'Masculin'])"
/>
</p>
<p> Nombre de femmes qui ont subi un accident en 2014 : <xsl:value-of
select="count(//accident[starts-with(@id,'2014')]/usagers/usager/sexe[text() = 'Fémin'])"
/>
</p>
</div>
<!-- <xsl:apply-templates/>-->
</body>
</html>
<xsl:message>Écriture de la CSS</xsl:message>
<xsl:result-document href="style.css" format="css-out">
<!--se trouvera pas ds sortie principale. href : enregistrer. chemin relatif/absolu -->
<!-- format fait référence à name de xsl:output -->
<xsl:text>html, body {
height: 100%;
width: 100%;
}
.leaderboard {
width: 100%;
min-height: 20%;
background-color: #232323;
}
.leaderboard h1 {
padding-top: 40px;
font-family: Cinzel;
color: #00b5ad;
text-align: center;
font-size: 86px;
}
.leaderboard h4 {
font-family: Cinzel;
color: #00b5ad;
text-align: center;
padding-bottom: 40px;
}
.item .content {
text-align: justify;
padding-top: 20px !important;
padding-bottom: 20px !important;
padding-right: 20px !important;
padding-left: 20px !important;
}
body {
background: #333 url(images/footer_lodyas.png) center center;
background-attachment: fixed;
}
.ui.items > .item > .content > span.header {
font-family: Cinzel;
color: #00b5ad;
}
p {
color: #8a8888;
}
.ui.items > .item .meta {
color: #5c5a5b;
}
.ui.divided.items>.item {
border-top: 2px solid #00b5ad;
}
.ui.items>.item a {
color: #00b5ad;
}
.ui.segment {
background: rgba(132, 132, 132, 0.3);
}
.ui.segment h2 {
text-align: center;
font-family: Cinzel;
color: #00b5ad;
}
.ui.segment p {
text-align: justify;
}
</xsl:text>
</xsl:result-document>
<xsl:message>Écriture de la CSV</xsl:message>
<xsl:result-document href="map.csv" format="csv-out">
<xsl:apply-templates select="/data/periode/accidents/accident/localisation"
mode="out_csv"/>
</xsl:result-document>
</xsl:template>
<!-- affiche latitude,longitude pour une sortie csv qui marche pour google maps -->
<xsl:template match="localisation" mode="out_csv">
<xsl:if test="number(latitude) > 0">
<xsl:value-of select="adresse"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="replace(latitude, '(\d\d)(\d+)', '$1.$2')"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="replace(longitude, '(\d)(\d+)', '$1.$2')"/>
<xsl:text>
</xsl:text>
</xsl:if>
</xsl:template>
<xsl:template match="text()" mode="#all"/>
</xsl:stylesheet>
XSLT #2
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs" version="2.0">
<!-- ALL_DPT.xsl == pour la transformation XSL pour les graphiques
GENEVIEVE BIENVENUE, ALEXANDRE CAVALCANTE, VIRGINIE POADEY
-->
<!-- Sortie CSV pour les graphiques -->
<xsl:output name="csv-out" indent="no" method="text" encoding="UTF-8" media-type="text/csv"/>
<!-- Debut de transformation -->
<xsl:template match="/">
<xsl:value-of select="document-uri(.)"/>
<xsl:apply-templates/>
<xsl:result-document href="accidents-delits.csv" format="csv-out">
<xsl:apply-templates mode="csv"/>
</xsl:result-document>
</xsl:template>
<!-- Compte le nombre d'accidents par mois sur l'année 2014 -->
<xsl:template match="periode[@annee = '2014']" mode="csv">
<xsl:variable name="dec" select="count(//accident[matches(date,'\d+/12/14')])"/>
<xsl:value-of select="$dec"/>
<xsl:text>;</xsl:text>
<xsl:variable name="nov" select="count(//accident[matches(date,'\d+/11/14')])"/>
<xsl:value-of select="$nov"/>
<xsl:text>;</xsl:text>
<xsl:variable name="oct" select="count(//accident[matches(date,'\d+/10/14')])"/>
<xsl:value-of select="$oct"/>
<xsl:text>;</xsl:text>
<xsl:variable name="sept" select="count(//accident[matches(date,'\d+/9/14')])"/>
<xsl:value-of select="$sept"/>
<xsl:text>;</xsl:text>
<xsl:variable name="aout" select="count(//accident[matches(date,'\d+/8/14')])"/>
<xsl:value-of select="$aout"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jul" select="count(//accident[matches(date,'\d+/7/14')])"/>
<xsl:value-of select="$jul"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jun" select="count(//accident[matches(date,'\d+/6/14')])"/>
<xsl:value-of select="$jun"/>
<xsl:text>;</xsl:text>
<xsl:variable name="mai" select="count(//accident[matches(date,'\d+/5/14')])"/>
<xsl:value-of select="$mai"/>
<xsl:text>;</xsl:text>
<xsl:variable name="avr" select="count(//accident[matches(date,'\d+/4/14')])"/>
<xsl:value-of select="$avr"/>
<xsl:text>;</xsl:text>
<xsl:variable name="mars" select="count(//accident[matches(date,'\d+/3/14')])"/>
<xsl:value-of select="$mars"/>
<xsl:text>;</xsl:text>
<xsl:variable name="fev" select="count(//accident[matches(date,'\d+/2/14')])"/>
<xsl:value-of select="$fev"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jan" select="count(//accident[matches(date, '\d+/1/14' )])"/>
<xsl:value-of select="$jan"/>
<xsl:text>;</xsl:text>
<xsl:apply-templates mode="csv"/>
</xsl:template>
<!-- Compte le nombre d'accidents par mois sur l'année 2013 -->
<xsl:template match="periode[@annee = '2013']" mode="csv">
<xsl:variable name="dec" select="count(//accident[matches(date,'\d+/12/13')])"/>
<xsl:value-of select="$dec"/>
<xsl:text>;</xsl:text>
<xsl:variable name="nov" select="count(//accident[matches(date,'\d+/11/13')])"/>
<xsl:value-of select="$nov"/>
<xsl:text>;</xsl:text>
<xsl:variable name="oct" select="count(//accident[matches(date,'\d+/10/13')])"/>
<xsl:value-of select="$oct"/>
<xsl:text>;</xsl:text>
<xsl:variable name="sept" select="count(//accident[matches(date,'\d+/9/13')])"/>
<xsl:value-of select="$sept"/>
<xsl:text>;</xsl:text>
<xsl:variable name="aout" select="count(//accident[matches(date,'\d+/8/13')])"/>
<xsl:value-of select="$aout"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jul" select="count(//accident[matches(date,'\d+/7/13')])"/>
<xsl:value-of select="$jul"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jun" select="count(//accident[matches(date,'\d+/6/13')])"/>
<xsl:value-of select="$jun"/>
<xsl:text>;</xsl:text>
<xsl:variable name="mai" select="count(//accident[matches(date,'\d+/5/13')])"/>
<xsl:value-of select="$mai"/>
<xsl:text>;</xsl:text>
<xsl:variable name="avr" select="count(//accident[matches(date,'\d+/4/13')])"/>
<xsl:value-of select="$avr"/>
<xsl:text>;</xsl:text>
<xsl:variable name="mars" select="count(//accident[matches(date,'\d+/3/13')])"/>
<xsl:value-of select="$mars"/>
<xsl:text>;</xsl:text>
<xsl:variable name="fev" select="count(//accident[matches(date,'\d+/2/13')])"/>
<xsl:value-of select="$fev"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jan" select="count(//accident[matches(date, '\d+/1/13' )])"/>
<xsl:value-of select="$jan"/>
<xsl:text>;</xsl:text>
<xsl:apply-templates mode="csv"/>
</xsl:template>
<!-- Compte le nombre d'accidents par mois sur l'année 2012 -->
<xsl:template match="periode[@annee = '2012']" mode="csv">
<xsl:variable name="dec" select="count(//accident[matches(date,'\d+/12/12')])"/>
<xsl:value-of select="$dec"/>
<xsl:text>;</xsl:text>
<xsl:variable name="nov" select="count(//accident[matches(date,'\d+/11/12')])"/>
<xsl:value-of select="$nov"/>
<xsl:text>;</xsl:text>
<xsl:variable name="oct" select="count(//accident[matches(date,'\d+/10/12')])"/>
<xsl:value-of select="$oct"/>
<xsl:text>;</xsl:text>
<xsl:variable name="sept" select="count(//accident[matches(date,'\d+/9/12')])"/>
<xsl:value-of select="$sept"/>
<xsl:text>;</xsl:text>
<xsl:variable name="aout" select="count(//accident[matches(date,'\d+/8/12')])"/>
<xsl:value-of select="$aout"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jul" select="count(//accident[matches(date,'\d+/7/12')])"/>
<xsl:value-of select="$jul"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jun" select="count(//accident[matches(date,'\d+/6/12')])"/>
<xsl:value-of select="$jun"/>
<xsl:text>;</xsl:text>
<xsl:variable name="mai" select="count(//accident[matches(date,'\d+/5/12')])"/>
<xsl:value-of select="$mai"/>
<xsl:text>;</xsl:text>
<xsl:variable name="avr" select="count(//accident[matches(date,'\d+/4/12')])"/>
<xsl:value-of select="$avr"/>
<xsl:text>;</xsl:text>
<xsl:variable name="mars" select="count(//accident[matches(date,'\d+/3/12')])"/>
<xsl:value-of select="$mars"/>
<xsl:text>;</xsl:text>
<xsl:variable name="fev" select="count(//accident[matches(date,'\d+/2/12')])"/>
<xsl:value-of select="$fev"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jan" select="count(//accident[matches(date, '\d+/1/12' )])"/>
<xsl:value-of select="$jan"/>
<xsl:text>;</xsl:text>
<xsl:apply-templates mode="csv"/>
</xsl:template>
<!-- Compte le nombre d'accidents par mois sur l'année 2011 -->
<xsl:template match="periode[@annee = '2011']" mode="csv">
<xsl:variable name="dec" select="count(//accident[matches(date,'\d+/12/11')])"/>
<xsl:value-of select="$dec"/>
<xsl:text>;</xsl:text>
<xsl:variable name="nov" select="count(//accident[matches(date,'\d+/11/11')])"/>
<xsl:value-of select="$nov"/>
<xsl:text>;</xsl:text>
<xsl:variable name="oct" select="count(//accident[matches(date,'\d+/10/11')])"/>
<xsl:value-of select="$oct"/>
<xsl:text>;</xsl:text>
<xsl:variable name="sept" select="count(//accident[matches(date,'\d+/9/11')])"/>
<xsl:value-of select="$sept"/>
<xsl:text>;</xsl:text>
<xsl:variable name="aout" select="count(//accident[matches(date,'\d+/8/11')])"/>
<xsl:value-of select="$aout"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jul" select="count(//accident[matches(date,'\d+/7/11')])"/>
<xsl:value-of select="$jul"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jun" select="count(//accident[matches(date,'\d+/6/11')])"/>
<xsl:value-of select="$jun"/>
<xsl:text>;</xsl:text>
<xsl:variable name="mai" select="count(//accident[matches(date,'\d+/5/11')])"/>
<xsl:value-of select="$mai"/>
<xsl:text>;</xsl:text>
<xsl:variable name="avr" select="count(//accident[matches(date,'\d+/4/11')])"/>
<xsl:value-of select="$avr"/>
<xsl:text>;</xsl:text>
<xsl:variable name="mars" select="count(//accident[matches(date,'\d+/3/11')])"/>
<xsl:value-of select="$mars"/>
<xsl:text>;</xsl:text>
<xsl:variable name="fev" select="count(//accident[matches(date,'\d+/2/11')])"/>
<xsl:value-of select="$fev"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jan" select="count(//accident[matches(date, '\d+/1/11' )])"/>
<xsl:value-of select="$jan"/>
<xsl:text>;</xsl:text>
<xsl:apply-templates mode="csv"/>
</xsl:template>
<!-- Compte le nombre d'accidents par mois sur l'année 2010 -->
<xsl:template match="periode[@annee = '2010']" mode="csv">
<xsl:variable name="dec" select="count(//accident[matches(date,'\d+/12/10')])"/>
<xsl:value-of select="$dec"/>
<xsl:text/>
<xsl:variable name="nov" select="count(//accident[matches(date,'\d+/11/10')])"/>
<xsl:value-of select="$nov"/>
<xsl:text>;</xsl:text>
<xsl:variable name="oct" select="count(//accident[matches(date,'\d+/10/10')])"/>
<xsl:value-of select="$oct"/>
<xsl:text>;</xsl:text>
<xsl:variable name="sept" select="count(//accident[matches(date,'\d+/9/10')])"/>
<xsl:value-of select="$sept"/>
<xsl:text>;</xsl:text>
<xsl:variable name="aout" select="count(//accident[matches(date,'\d+/8/10')])"/>
<xsl:value-of select="$aout"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jul" select="count(//accident[matches(date,'\d+/7/10')])"/>
<xsl:value-of select="$jul"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jun" select="count(//accident[matches(date,'\d+/6/10')])"/>
<xsl:value-of select="$jun"/>
<xsl:text>;</xsl:text>
<xsl:variable name="mai" select="count(//accident[matches(date,'\d+/5/10')])"/>
<xsl:value-of select="$mai"/>
<xsl:text>;</xsl:text>
<xsl:variable name="avr" select="count(//accident[matches(date,'\d+/4/10')])"/>
<xsl:value-of select="$avr"/>
<xsl:text>;</xsl:text>
<xsl:variable name="mars" select="count(//accident[matches(date,'\d+/3/10')])"/>
<xsl:value-of select="$mars"/>
<xsl:text>;</xsl:text>
<xsl:variable name="fev" select="count(//accident[matches(date,'\d+/2/10')])"/>
<xsl:value-of select="$fev"/>
<xsl:text>;</xsl:text>
<xsl:variable name="jan" select="count(//accident[matches(date, '\d+/1/10' )])"/>
<xsl:value-of select="$jan"/>
<xsl:text>;</xsl:text>
<xsl:apply-templates mode="csv"/>
</xsl:template>
<!-- Pour afficher les délits du code 35 (vols de voiture) par mois et par année-->
<xsl:template match="data" mode="csv">
<xsl:variable name="delits"
select="//periode[@annee]/delits/delit[@code = '35']/mois/child::node()"/>
<xsl:value-of select="$delits"/>
<xsl:text/>
<xsl:apply-templates mode="csv"/>
</xsl:template>
<!-- Court-circuit pour les noeuds texte du doc xml -->
<xsl:template match="text()" mode="csv"/>
</xsl:stylesheet>