From: DENIS Christophe (CDENIS@micropole-univers.com)
Date: 15/05/2003 - 15:11
bonjour,
j'ai un xml quelconque en entree et je voudrai genere une page html bien
formater
exemple de xml:
<root a="1">v<fils>valeur<petitfils b="2">valeur</petitfils></fils></root>
le resultat souhaite est le suivant:
<root a="1">
v
<fils>
valeur1
<petitfils b="2">
valeur2
</petitfils>
</fils>
</root>
voici la xsl que j'ai faite, elle est pas satisfesante car elle genere:
<root a="1">
<fils>
<petitfils b="2">
valeur2
</petitfils>
valeur1valeur2
</fils>
vvaleur1valeur2
</root>
avez vous une idee pour corriger mon erreur?
par avance merci
Christophe DENIS
<xsl:template match="/">
<xsl:call-template name="affichenoeud">
<xsl:with-param name="noeud" select="./*"/>
<xsl:with-param name="indent" select="0"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="affichenoeud">
<xsl:param name="noeud" select="."/>
<xsl:param name="indent" select="."/>
<xsl:call-template name="addspace"><xsl:with-param name="size"
select="number($indent)"/></xsl:call-template>
<<xsl:value-of select="name(.)"/><xsl:for-each
select="@*"> <xsl:attribute name="name(.)"><xsl:value-of
select="."/></xsl:attribute></xsl:for-each>>
<br/>
<xsl:for-each select="./*">
<xsl:call-template name="affichenoeud">
<xsl:with-param name="noeud" select="."/>
<xsl:with-param name="indent"
select="(number($indent)+2)"/>
</xsl:call-template>
</xsl:for-each>
<xsl:call-template name="addspace"><xsl:with-param name="size"
select="(number($indent)+2)"/></xsl:call-template><xsl:value-of
select="."/><br/>
<xsl:call-template name="addspace"><xsl:with-param name="size"
select="number($indent)"/></xsl:call-template></<xsl:value-of
select="name(.)"/>><br/>
</xsl:template>
<!-- template recurcive pour ajouter un certain nombre d'espace -->
<xsl:template name="addspace">
<xsl:param name="size" select="."/>
<xsl:if test="$size!=0"> <xsl:call-template
name="addspace">
<xsl:with-param name="size"
select="(number($size)-1)"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|