Je débute en XML, et rebute sur le XSLT.
j'ai fait le tour des tutos, mais je ne trouve pas de solution,
et comme des lignes de codes valent mieux qu'un long discours...
XML:
Code :
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <source>
- <consoles>
- <console id="1">
- <nom>x-box</nom>
- <fabricant>2</fabricant>
- <support>dvd-rom</support>
- </console>
- <console id="2">
- <nom>playstation</nom>
- <fabricant>1</fabricant>
- <support>cd-rom</support>
- </console>
- <console id="3">
- <nom>playstation 2</nom>
- <fabricant>1</fabricant>
- <support>dvd-rom</support>
- </console>
- <console id="4">
- <nom>game cube</nom>
- <fabricant>3</fabricant>
- <support>mini dvd</support>
- </console>
- </consoles>
- <fabricants>
- <fabricant id="1">
- <nom>sony</nom>
- </fabricant>
- <fabricant id="2">
- <nom>microsoft</nom>
- </fabricant>
- <fabricant id="3">
- <nom>nintendo</nom>
- </fabricant>
- </fabricants>
- </source>
|
mon XSL est à modifier:
Code :
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:output method="html"/>
- <xsl:template match="fabricants/fabricant">
- <ul>
- <xsl:value-of select="nom"/> : <xsl:call-template name="articles"/>
- </ul>
- </xsl:template>
- <xsl:template name="articles">
- <xsl:value-of select="/source/consoles/console[fabricant='1']"/> <!-- erreur en mettant @id à la place de 1 -->
- </xsl:template>
- </xsl:stylesheet>
|
le résultat attendu serait quelque chose qui ressemble à ca :
Code :
- <ul>
- <li>sony: playstation 1, playstation 2</li>
- <li>microsoft: x-box</li>
- <li>nintendo: game cube</li>
- </ul>
|
mais je n'arrive pas à afficher les articles de chaque fabricants.
Message édité par oirom le 10-02-2005 à 14:53:32