Bonjour, j'aimerais générer ma feuille xml (composée que d'éléments) en un arbre graphique svg. Cependant je n'arrive pas à représenter les lignes des cases à l'intérieur desquelles est marquée le nom de l'élément.
Il y a des fautes mais je veux juste arriver à générer les lignes des cases
Merci pour la réponse
Voici un peu le code :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlnssl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/2000/SVG/Transform">
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1"
indent="yes" />
<xsl:param name="text.style" select="'fill:#000000;stroke:none;'" />
<xsl:param name="handle.path.style"
select="'stroke-width:0.5;stroke-miterlimit:3;fill:none;'" />
<xsl:param name="graph.style">
fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFD0;
stroke:#000000;stroke-miterlimit:4; font-family:'ArialMT';
font-size:12;
</xsl:param>
<xsl:param name="handles" select="'true'" />
<xsl:param name="root.handle" select="'false'" />
<xsl:param name="boxes" select="'true'" />
<xsl:param name="letterHeight" select="8" />
<xsl:param name="letterWidth" select="8" />
<xsl:param name="x0" select="20" />
<xsl:param name="y0" select="20" />
<xsl:param name="rowHeight" select="20" />
<xsl:param name="columnWidth" select="20" />
<xsl:param name="boxHeight" select="16" />
<xsl:include href="string-width.xslt" />
<!-- Pour rejeter tous les textes -->
<xsl:template match="text()" />
<!-- Rajouter le texte ici -->
<xsl:template match="/">
<svg>
<g style="graph.style">
<xsl:apply-templates select="child::*" />
</g>
</svg>
</xsl:template>
<xsl:template match="*">
<xsl:param name="profond" select="0" />
<xsl:param name="lignePrec" select="0" />
<xsl:variable name="longueur">
<xsl:call-template name="string-width">
<xsl:with-param name="s" select="name()" />
</xsl:call-template>
</xsl:variable>
<p>
<rect x="{$x0+$columnWidth*$profond}" y="{$y0+$rowHeight*$lignePrec}"
width="{$longueur}" height="$rowHeight" />
<text x="{$x0+$columnWidth*profondeur}" y="{$y0+$rowHeight}"
style="{$text.style}">
<xsl:value-of select="name()" />
</text>
</p>
<xsl:apply-templates select="child::*">
<xsl:with-param name="profond" select="$profond+1" />
<xsl:with-param name="lignePrec" select="$lignePrec+1" />
</xsl:apply-templates>
</xsl:template>
</xsl:stylesheet>
Partager