Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
708 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  Matcher un nombre inconnu d'arguments[Résolu]

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Matcher un nombre inconnu d'arguments[Résolu]

n°1318418
esox_ch
Posté le 04-03-2006 à 14:05:49  profilanswer
 

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 :
  1. <?xml version='1.0'?>
  2. <page>
  3. <head>
  4.   <title value='Administration des utilisateurs' />
  5. </head>
  6. <body>
  7. <table>
  8.   <headers>
  9.     <header name="id"/>
  10.     <header name="login"/>
  11.     <header name="Nom"/>
  12.     <header name="Prenom"/>
  13.     <header name="Email"/>
  14.     <header name="Societe"/>
  15.     <header name="Adresse"/>
  16.     <header name="Pays"/>
  17.     <header name="Phone"/>
  18.     <header name="ip"/>
  19.     <header name="date"/>
  20.     <header name="active"/>
  21.   </headers>
  22.   <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" />
  23. </table>
  24. </body>
  25. </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 :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
  3. <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'/>
  4. <xsl:template match="/">
  5. <html xml:lang="fr" lang="fr">
  6. <head>
  7.    <xsl:apply-templates select="head" />
  8. </head>
  9. <body>
  10. <h1> Administration des utilisateurs </h1>
  11. <xsl:apply-templates select="table" />
  12. </body>
  13. </html>
  14. </xsl:template>
  15. <xsl:template match="head">
  16. <title><xsl:value-of select="title/@value"/></title>
  17. </xsl:template>
  18. <xsl:template match="table">
  19. <table border="1" summary="Liste des utilisateurs">
  20. <tr>
  21. <xsl:apply-templates select="headers/header" />
  22. </tr>
  23. <xsl:apply-templates select="items" />
  24. </table>
  25. </xsl:template>
  26. <xsl:template match="header">
  27.   <th><xsl:value-of select="@name" /></th>
  28. </xsl:template>
  29. <xsl:template match="items">
  30. <tr>
  31. <xsl:apply-templates select="item/@*" />
  32. </tr>
  33. </xsl:template>
  34. <xsl:template match="item/@*" />
  35. <td><xsl:value-of select="." /></td>
  36. </xsl:template>
  37. </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
mood
Publicité
Posté le 04-03-2006 à 14:05:49  profilanswer
 

n°1318800
esox_ch
Posté le 05-03-2006 à 01:04:35  profilanswer
 

up


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1319044
esox_ch
Posté le 05-03-2006 à 17:10:14  profilanswer
 

re up ..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1319093
esox_ch
Posté le 05-03-2006 à 19:40:40  profilanswer
 

Problème auto-resolu apres 1 jour de triturage ... J'en était pas si loin que ça :D Mais ça m'a permis aussi de bien comprendre où je foirais.  
Bien entendu tous commentaires / remarques sont bien venus
 

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
  3. <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'/>
  4. <xsl:template match="/">
  5. <html xml:lang="fr" lang="fr">
  6. <head>
  7.    <xsl:apply-templates select="/page/head"/>
  8. </head>
  9. <body>
  10. <h1> Administration des utilisateurs </h1>
  11. <xsl:apply-templates select="/page/body"/>
  12. </body>
  13. </html>
  14. </xsl:template>
  15. <xsl:template match="head">
  16. <title><xsl:value-of select="title/@value"/></title>
  17. </xsl:template>
  18. <xsl:template match="table">
  19. <table border="1" summary="Liste des utilisateurs">
  20. <tr>
  21. <xsl:apply-templates select="headers/header" />
  22. </tr>
  23. <xsl:apply-templates select="items" />
  24. </table>
  25. </xsl:template>
  26. <xsl:template match="header">
  27.   <th><xsl:value-of select="@name" /></th>
  28. </xsl:template>
  29. <xsl:template match="item">
  30. <tr>
  31. <xsl:apply-templates select="./@*" />
  32. </tr>
  33. </xsl:template>
  34. <xsl:template match="item/@*">
  35. <td><xsl:value-of select="."/></td>
  36. </xsl:template>
  37. </xsl:stylesheet>


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1319271
avander
Posté le 06-03-2006 à 11:35:30  profilanswer
 

pas mal... et sans for-each en plus!  :whistle:

n°1319365
esox_ch
Posté le 06-03-2006 à 13:24:48  profilanswer
 

Au debut j'en avais dans tous les sens ...
Apres, en cherchant a droite et a gauche je suis tombé sur un post qui expliquait qu'il vaut mieux utiliser le moins de for-each possible ... Alors voila ...  
Et le resultat est pas mal, maintenant ma template c'est pas mal alourdie a cause de plusieurs blocs choose et if mais ça me semble toujours plus "leger" que si j'avais fait le gros template / avec 8 foreach a la suite :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  Matcher un nombre inconnu d'arguments[Résolu]

 

Sujets relatifs
[RESOLU]Créer une instance Excel à partir de Word 97 ou 2003[resolu] pas de rép alors...
[resolu]organisation bdd[resolu] Convertir un entier en chaine représentant sa valeur hexa
[resolu] erreur WARNING[resolu]condition dans une boucle
[resolu] problème requete erreur de syntaxe du a des quotes...[Résolu] Transfert de base de donnée
[resolu]BBcode[resolu] Télécharger le contenu d'une fenetre
Plus de sujets relatifs à : Matcher un nombre inconnu d'arguments[Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR