[nosmile]Tiens, voilà un exemple fonctionnel hacké à la va-vite… (Enfin, si je ne me suis pas trompé, en tout cas ça semblait fonctionner sous Safari)
tree.xml :
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="tree.xsl" type="text/xsl"?>
<tree title="XML Tree">
<node title="Node A">
<node title="Node A" />
<node title="Node B">
<node title="Node A" />
<node title="Node B" />
<node title="Node C" />
<node title="Node D" />
</node>
<node title="Node C" />
<node title="Node D" />
</node>
<node title="Node B" />
<node title="Node C" />
<node title="Node D" />
</tree>
tree.xsl :
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:html="http://www.w3.org/1999/xhtml">
<xsl:output method="xml" version="1.0" encoding="utf-8" omit-xml-declaration="no" indent="no" media-type="text/xml"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
<!-- Tree template -->
<xsl:template match="/tree">
<html:html xml:lang="en" lang="en">
<html:head>
<html:title><xsl:value-of select="@title" /></html:title>
<html:meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<html:meta http-equiv="Content-Style-Type" content="text/css" />
<html:link rel="stylesheet" type="text/css" href="style.css" />
</html:head>
<html:body>
<xsl:call-template name="node_children" />
</html:body>
</html:html>
</xsl:template>
<!-- Node templates -->
<xsl:template name="node">
<xsl:choose>
<xsl:when test="not(*) and not(normalize-space())">
<html:li><xsl:call-template name="node_title" /></html:li>
</xsl:when>
<xsl:otherwise>
<html:li>
<xsl:call-template name="node_title" />
<xsl:call-template name="node_children" />
</html:li>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="node_title">
<xsl:value-of select="@title" />
</xsl:template>
<xsl:template name="node_children">
<html:ul>
<xsl:for-each select="node">
<xsl:call-template name="node" />
</xsl:for-each>
</html:ul>
</xsl:template>
</xsl:stylesheet>
(Bon c'est basique et y'a pas le javascript pour agrandir/rétrécir, mais c'est pour montrer le principe ^^)
./9 > Que dire sinon…
