fabriquer un fichier xls

fabriquer un fichier xls - XML/XSL - Programmation

Marsh Posté le 01-05-2004 à 14:33:08    

bonjour !
voilà j'ai un document xml, que je voudrais  
passer en html en me servant de regles contenues dans un fichier xls
 

Code :
  1. ---DOC XML----
  2. <?xml version='1.0' ?>
  3. <!DOCTYPE Inbox PUBLIC '//-XML-MAIL//' >
  4. <Inbox>
  5.   <Lettre>
  6.     <Expediteur>
  7.       <AdresseElectronique nom='monNom' domaine='mail.fr'/>
  8.     </Expediteur>
  9.     <Destinataire>
  10.       <AdresseElectronique nom='nomDestinataire' domaine='mail.fr'/>
  11.     </Destinataire>
  12.     <Contenu>
  13.       <ContenuSimple>
  14.           <![CDATA[le corps du message ]]
  15.       </ContenuSimple>
  16.     </Contenu>
  17.   </Lettre>
  18. </Inbox>
  19. ----------------


 
je voudrais avoir un fichier xls basique qui genererait le code html
par exemple comme ça:
 

Code :
  1. <html>
  2. <body>
  3. <table>
  4. <tr>
  5. "From : " . 'monNom'
  6. </tr>
  7. <tr>
  8. "Message : "
  9. </tr>
  10. <tr>
  11. // le corps du message
  12. </tr>
  13. </table>
  14. </html>
  15. </body>


 
 
 
voici à koi ressemble ce que j'ai fais pour le fichier xls, le probleme c'est que je ne sais pas recupérer 'monNom' ou 'mail.fr' par exemple...
 

Code :
  1. ----------------CODE XLS-----------
  2. <?xml version="1.0" encoding="ISO-8859-1"?>
  3. <xsl:stylesheet
  4. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  5. version="1.0"
  6. >
  7. <xsl:output method="html"/>
  8. <xsl:template match="/">
  9. <html>
  10. <body>
  11. <table>
  12. <tr>
  13. "From : " .......
  14. </tr>
  15. <tr>
  16. "Message : "
  17. </tr>
  18. <tr>
  19. // le corps du message
  20. </tr>
  21. </table>
  22. </body>
  23. </html>
  24. </xsl:template>
  25. </xsl:stylesheet>
  26. --------------------------------------


 
si qq1 veut bien m'aider svp , MERCI !
 
ah oui et j'ai tte un dtd associée

Code :
  1. <!ELEMENT Message (Commande | Inbox) >
  2. <!ELEMENT Commande (RetirerCourrier|EnvoyerLettre) >
  3. <!ELEMENT RetirerCourrier (UtilisateurIdentifie,Contact)>
  4. <!ELEMENT Inbox (Lettre*)>
  5. <!ELEMENT Contact EMPTY>
  6. <!ATTLIST Contact machine NMTOKEN #REQUIRED >
  7. <!ATTLIST Contact port NMTOKEN #REQUIRED >
  8. <!ELEMENT Utilisateur (AdresseElectronique)>
  9. <!ELEMENT AdresseElectronique EMPTY>
  10. <!ATTLIST AdresseElectronique nom NMTOKEN #REQUIRED>
  11. <!ATTLIST AdresseElectronique domaine NMTOKEN #REQUIRED>
  12. <!ELEMENT UtilisateurIdentifie (AdresseElectronique,Identificateur)>
  13. <!ELEMENT Identificateur EMPTY>
  14. <!ATTLIST Identificateur motdepasse NMTOKEN #REQUIRED>
  15. <!ELEMENT EnvoyerLettre (UtilisateurIdentifie,Lettre)>
  16. <!ELEMENT Lettre (Expediteur,Destinataire,Contenu) >
  17. <!ELEMENT Expediteur (AdresseElectronique) >
  18. <!ELEMENT Destinataire (AdresseElectronique) >
  19. <!ELEMENT Contenu (ContenuSimple|ContenuComplexe)>
  20. <!ELEMENT ContenuSimple (#PCDATA) >
  21. <!ELEMENT ContenuComplexe (ContenuMedia*) >
  22. <!ELEMENT ContenuMedia (#PCDATA) >
  23. <!ATTLIST ContenuMedia type-media (text | html | jpeg | gif | mp3) "text">

Reply

Marsh Posté le 01-05-2004 à 14:33:08   

Reply

Marsh Posté le 01-05-2004 à 17:14:02    

ça avance un peu !
ptêtre ke le pb vient du fichier xml renvoyé par le server
j'ai essayé de modifier celui ci, comme ça, en rajoutant la reference à la dtd, et en enlevant la balise (mal fermée au passage..) CDATA

Code :
  1. <?xml version='1.0' ?>
  2. <!DOCTYPE Inbox PUBLIC '//-XML-MAIL//' 'xmlmail.dtd'>
  3. <Inbox>
  4. <Lettre>
  5.    <Expediteur>
  6.      <AdresseElectronique nom='monNom' domaine='mail.fr'/>
  7.    </Expediteur>
  8.    <Destinataire>
  9.      <AdresseElectronique nom='nomDestinataire' domaine='mail.fr'/>
  10.    </Destinataire>
  11.    <Contenu>
  12.      <ContenuSimple>
  13.          le corps du message
  14.      </ContenuSimple>
  15.    </Contenu>
  16. </Lettre>
  17. </Inbox>


 
j'ai aussi un peu modifié la xsl

Code :
  1. <xsl:stylesheet
  2. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3. version="1.0"
  4. >
  5. <xsl:template match="/">
  6. <HTML>
  7. <HEAD>
  8. </HEAD>
  9. <BODY>
  10. <TABLE>
  11. <xsl:for-each select="Inbox/Lettre">
  12. <xsl:for-each select="Expediteur">
  13. <tr><TD>
  14. Expediteur<BR></BR>
  15. NOM : <xsl:value-of select="AdresseElectronique/@nom" />
  16. DOMAINE : <xsl:value-of select="AdresseElectronique/@domaine" />
  17. </TD></tr>
  18. </xsl:for-each>
  19. <xsl:for-each select="Destinataire">
  20. <tr><TD>
  21. Destinataire<BR></BR>
  22. NOM : <xsl:value-of select="AdresseElectronique/@nom" />
  23. DOMAINE : <xsl:value-of select="AdresseElectronique/@domaine" />
  24. </TD></tr>
  25. </xsl:for-each>
  26. <xsl:for-each select="Contenu">
  27. <tr><TD>
  28. Contenu<BR></BR>
  29. <xsl:value-of select="/ContenuSimple" />
  30. </TD></tr>
  31. </xsl:for-each>
  32. </xsl:for-each>
  33. </TABLE>
  34. </BODY>
  35. </HTML>
  36. </xsl:template>
  37. </xsl:stylesheet>


 
et, oh miracle, code généré :

Code :
  1. <HTML>
  2. <HEAD>
  3. <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. </HEAD>
  5. <BODY>
  6. <TABLE>
  7. <tr>
  8. <TD>
  9. Expediteur<BR>
  10. NOM : monNom
  11. DOMAINE : mail.fr</TD>
  12. </tr>
  13. <tr>
  14. <TD>
  15. Destinataire<BR>
  16. NOM : nomDestinataire
  17. DOMAINE : mail.fr</TD>
  18. </tr>
  19. <tr>
  20. <TD>
  21. Contenu<BR>
  22. </TD>
  23. </tr>
  24. </TABLE>
  25. </BODY>
  26. </HTML>


ya juste un pb avec l'affichage du CONTENU !
 
il ya qq chose à modifier de ce côté sûrement:

Code :
  1. <xsl:for-each select="Contenu">
  2. <tr><TD>
  3. Contenu<BR></BR>
  4. <xsl:value-of select="/ContenuSimple" />
  5. </TD></tr>
  6. </xsl:for-each>


 
 
MERCI DE M'AIDER SUR CE DERNIER POINT SVP !


Message édité par souljah le 02-05-2004 à 01:34:10
Reply

Marsh Posté le 05-05-2004 à 10:03:55    

Enlève le "/" ; puisque tu es déja dans ton élément Contenu, le chemin de ton élément ContenuSimple est juste "ContenuSimple".

Code :
  1. <xsl:value-of select="ContenuSimple" />


Je te recommande d'utiliser plusieurs templates (un par élément XML de ta racine au moins), ca t'évitera d'avoir trop de code imbriqué.
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed