Bonjour,
Je suis entrain de faire un petit CMS et j'ai décidé de me mettre dans le bain du traitement par XSL, ce qui m'a l'air très pratique mais pour le moment un peu dur.
Enfait grace a un script php je sors un listing de ce type :
Code :
- <?xml version='1.0'?>
- <page>
- <head>
- <title value='Administration des utilisateurs' />
- </head>
- <body>
- <table>
- <headers>
- <header name="id"/>
- <header name="login"/>
- <header name="Nom"/>
- <header name="Prenom"/>
- <header name="Email"/>
- <header name="Societe"/>
- <header name="Adresse"/>
- <header name="Pays"/>
- <header name="Phone"/>
- <header name="ip"/>
- <header name="date"/>
- <header name="active"/>
- </headers>
- <item id="1" login="user1" Nom="Esox" Prenom="esox" Email="esox_ch@email.com" Societe="" Adresse="" Pays="suisse" Phone="" ip="80.218.33.234" date="2004-12-21 10:50:26" active="y" />
- </table>
- </body>
- </page>
|
Où le nombre de header n'est pas connu d'avance (ni bien entendu la valeur de leur attribut). Je voudrais générer un tableau avec (les headers deviendront les th et les item deviendront les <td> ).
J'ai écrit un petite template XSLT mais apperemment je dois avoir loupé une (ou plusieurs étapes), pouvez vous me re-mettre sur la voie ?
Code :
- <?xml version="1.0" encoding="UTF-8"?>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
- <xsl:output method="xml" encoding="UTF-8" ident="yes" doctype-public='-//W3C//DTD XHTML 1.0 Strict//EN' doctype-system ='http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'/>
- <xsl:template match="/">
- <html xml:lang="fr" lang="fr">
- <head>
- <xsl:apply-templates select="head" />
- </head>
- <body>
- <h1> Administration des utilisateurs </h1>
- <xsl:apply-templates select="table" />
- </body>
- </html>
- </xsl:template>
- <xsl:template match="head">
- <title><xsl:value-of select="title/@value"/></title>
- </xsl:template>
- <xsl:template match="table">
- <table border="1" summary="Liste des utilisateurs">
- <tr>
- <xsl:apply-templates select="headers/header" />
- </tr>
- <xsl:apply-templates select="items" />
- </table>
- </xsl:template>
- <xsl:template match="header">
- <th><xsl:value-of select="@name" /></th>
- </xsl:template>
- <xsl:template match="items">
- <tr>
- <xsl:apply-templates select="item/@*" />
- </tr>
- </xsl:template>
- <xsl:template match="item/@*" />
- <td><xsl:value-of select="." /></td>
- </xsl:template>
- </xsl:stylesheet>
|
Merci d'avance
Esox_ch
Message édité par esox_ch le 05-03-2006 à 20:07:13
---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait