[XML/XSL] pk ça marche po ??

pk ça marche po ?? [XML/XSL] - XML/XSL - Programmation

Marsh Posté le 13-05-2003 à 15:53:50    

voilà, je vous explique le truc : ds le cadre de mes études, je dois faire une plateforme d'elearning. Dc g décidé de stocker mes cours sous forme de HTML et de créer ces cours grâce à XML+XSL, via saxon.exe (je suppose ke vos connaissez...)
 
mais malheureusement, le fichier HTML ne correspond pas à ce ke j'aurai voulu.
enfin voilà, je vous mets le code, ce sera plus parlant !!
 
le DTD :

Code :
  1. <!ELEMENT Cours (nom_concepteur, date, titre, cours, schema+) >
  2. <!ELEMENT nom_concepteur (#PCDATA) >
  3. <!ELEMENT date (#PCDATA) >
  4. <!ELEMENT titre (#PCDATA) >
  5. <!ELEMENT cours (partie+) >
  6. <!ELEMENT partie (titre, texte)>
  7. <!ATTLIST partie titre CDATA #REQUIRED>
  8. <!ELEMENT texte (#PCDATA)>
  9. <!ELEMENT schema (hauteur, largeur, chemin) >
  10. <!ELEMENT hauteur (#PCDATA) >
  11. <!ELEMENT largeur (#PCDATA) >
  12. <!ELEMENT chemin (#PCDATA) >


 
le xsl :

Code :
  1. <?xml version="1.0"?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  version="2.0">
  3. <xsl:output method="html" version="4.0" indent="yes" doctype-public="-//W3C/DTD HTML 4.0/EN" />
  4. <xsl:template match="Cours">
  5. <HTML>
  6. <HEAD>
  7. <TITLE>
  8. </TITLE>
  9. </HEAD>
  10. <BODY>
  11.  <H1><xsl:value-of select="titre" /> ecrit par <xsl:value-of select="nom_concepteur" /> le <xsl:value-of select="date" /></H1>
  12.   <xsl:for-each select="partie" >
  13.   <OL>
  14.   <xsl:apply-templates select="part" />
  15.   </OL>
  16.   </xsl:for-each>
  17. </BODY>
  18. </HTML>
  19. </xsl:template>
  20. <xsl:template match="part" >
  21. <U><xsl:value-of select="titre_partie" /></U>
  22. <xsl:for-each select="sous-partie" >
  23. <OL>
  24. <xsl:apply-templates select="sous-part" />
  25. </OL>
  26. </xsl:for-each>
  27. </xsl:template>
  28. <xsl:template match="sous-part" >
  29. <OL>
  30. <U><xsl:value-of select="titre_ss-partie" /></U>
  31. <xsl:value-of select="texte" />
  32. </OL>
  33. </xsl:template>
  34. </xsl:stylesheet>


 
le xml :

Code :
  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="file://A:\elearning.xsl"?>
  3. <!DOCTYPE Cours SYSTEM "elearning.dtd">
  4. <Cours>
  5. <nom_concepteur>Mat</nom_concepteur>
  6. <date>02/05/2003</date>
  7. <titre>Mon Premier Cours</titre>
  8.  <partie titre_partie="Partie 1">
  9.   <sous-partie titre_ss-partie="sous partie 1">
  10.    <texte>bla bla</texte>
  11.   </sous-partie>
  12.  </partie>
  13. </Cours>


 
et le fichier html obtenu :

Code :
  1. <!DOCTYPE html
  2.   PUBLIC "-//W3C/DTD HTML 4.0/EN">
  3. <HTML>
  4.    <HEAD>
  5.       <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6.  
  7.       <TITLE></TITLE>
  8.    </HEAD>
  9.    <BODY>
  10.       <H1>Mon Premier Cours ecrit par Mat le 02/05/2003</H1>
  11.       <OL></OL>
  12.    </BODY>
  13. </HTML>


 
 
et donc, pas de trace du titre de ma sous-partie, ni de celui de ma partie...
 
est-ce que qqn pourrait m'expliquer pk ?
 


Message édité par matlu le 13-05-2003 à 15:56:48
Reply

Marsh Posté le 13-05-2003 à 15:53:50   

Reply

Marsh Posté le 13-05-2003 à 16:37:34    

Tu ne sors pas la variable que tu déclares ...
 
xml
 <sous-partie titre_ss-partie="sous partie 1">  
xsl
 <xsl:template match="sous-part" >  
 
et tu cherches une node au lieu d'un attribut
 <xsl:value-of select="titre_ss-partie" />

Reply

Marsh Posté le 13-05-2003 à 17:14:44    

youdontcare a écrit :

Tu ne sors pas la variable que tu déclares ...
 
xml
 <sous-partie titre_ss-partie="sous partie 1">  
xsl
 <xsl:template match="sous-part" >  
 
et tu cherches une node au lieu d'un attribut
 <xsl:value-of select="titre_ss-partie" />
 


 
g essayé ce que tu me dis, ça marche po...

Reply

Marsh Posté le 16-05-2003 à 12:19:15    

Pour moi c'est un attribut et donc :  


<xsl:value-of select="@titre_ss-partie" />  


 
A+


---------------
A thing of beauty is a joy forever (John Keats)
Reply

Marsh Posté le 17-05-2003 à 00:12:56    

Avander a écrit :

Pour moi c'est un attribut et donc :  


<xsl:value-of select="@titre_ss-partie" />  


 
A+


 
exact, merci !!
chuis vraiment une grosse merde en XML !!

Reply

Sujets relatifs:

Leave a Replay

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