IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

Conversion XML -> HTML. Ne fonctionne pas. [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 65
    Points
    65
    Par défaut Conversion XML -> HTML. Ne fonctionne pas.
    Bonjour,
    je souhaiterais faire en sorte que le fichier xml suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="essai.xsl"?>
    <expression exp="A+B+C+D" typeExp="Developpement">
    <consigne>La consigne de l'exo</consigne>
    <monome valeur="A">
    <signe>+</signe>
    <coefficient intervalle="1..9"/>
    <inconnue>x , y , z rien ou random</inconnue>
    </monome>
    <monome valeur="B">
    <signe>+</signe>
    <coefficient intervalle="1..9"/>
    <inconnue>x , y , rien ou random</inconnue>
    </monome>
    <monome valeur="C">
    <signe>+</signe>
    <coefficient intervalle="1..9" Ensemble="R"/>
    <inconnue>x , y , rien ou random</inconnue>
    </monome>
    <monome valeur="D">
    <signe>+</signe>
    <coefficient intervalle="1..9"/>
    <inconnue>x , y , rien ou random</inconnue>
    </monome>
    </expression>
    Sur lequel j'applique le schéma XSL suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
    	<html>
    		<head>
    			<title>Feuille d'exercice</title>
    			<style type="text/css"></style>
    		</head>
    		<body>
          <xsl:template match="expression">
    			  <p><xsl:apply-template select="consigne"/></p>
    			  <p><xsl:apply-template select="@exp"/></p>
          </xsl:template>
        </body>
    	</html>
    </xsl:template>
    </xsl:stylesheet>
    Me ressorte un fichier HTML. Le seul problème c'est que dans l'état actuelle cela ne fonctionne pas.
    J'ai probablement du me tromper à ce niveau là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:template match="expression">
    			  <p><xsl:apply-template select="consigne"/></p>
    			  <p><xsl:apply-template select="@exp"/></p>
          </xsl:template>
    Mais j'avoue que l'œil de quelqu'un d'autre sur ce problème m'aiderait bien. L'erreur doit être énorme mais ne manipulant pas du XSl souvent j'avoue ne pas trop savoir.

    De plus est-il possible après cette conversion de faire en sorte que directement un nouveau fichier .html soit créé ou non ? Existe-t-il une balise spécifique pour cela ?

    Merci à celles et ceux qui pourront m'aider.

    Cordialement.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 612
    Points
    21 612
    Par défaut
    Citation Envoyé par byakuichi Voir le message
    Mais j'avoue que l'œil de quelqu'un d'autre sur ce problème m'aiderait bien.
    On ne peut pas mettre un template dans un template, c'est pas du tout la logique de la chose.

    Le XSLT ça ne s'improvise pas, je comprends bien qu'on commence tous débutants, mais il faut commencer par des tutoriels. J'avoue, j'en connais pas de bons. N'empêche, essayer des trucs sans rien avoir appris, ça sera beaucoup trop long.

    De plus est-il possible après cette conversion de faire en sorte que directement un nouveau fichier .html soit créé ou non ?
    Nieh ? Raconte un peu plus le plan.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 65
    Points
    65
    Par défaut
    En gros existe-t-il une balise qui permet de générer carrément le ".html" au lancement du ".xml" qui utilise le ".xsl" ?

    Je suppose que non mais qu'en utilisant quelque chose d'externe au processus de génération on peut récupérer ce .xml formaté en HTML.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 612
    Points
    21 612
    Par défaut
    Mais de quoi tu parles ?

    Raconte-nous un peu ce que tu as, à quoi tu le donnes, comment tu fais, ce qui se passe à ce moment-là, et qu'est-ce qui, sur ton ordinateur, montre qu'une transformation s'est bel et bien effectuée ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 65
    Points
    65
    Par défaut
    Bon j'ai réussi finalement voila ce que j'avais dans mon xml (Je pensais pas avoir besoin de donné un contexte juste pour corrigé les erreurs de mon ".xsl") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="essai.xsl"?>
     
    <expression exp="A+B+C+D" typeExp="Developpement">
    <consigne>La consigne de l'exo</consigne>
    <monome valeur="A">
    <signe>+</signe>
    <coefficient intervalle="1..9"/>
    <inconnue>x , y , z rien ou random</inconnue>
    </monome>
     
    <monome valeur="B">
    <signe>+</signe>
    <coefficient intervalle="1..9"/>
    <inconnue>x , y , rien ou random</inconnue>
    </monome>
     
    <monome valeur="C">
    <signe>+</signe>
    <coefficient intervalle="1..9" Ensemble="R"/>
    <inconnue>x , y , rien ou random</inconnue>
    </monome>
     
    <monome valeur="D">
    <signe>+</signe>
    <coefficient intervalle="1..9"/>
    <inconnue>x , y , rien ou random</inconnue>
    </monome>
    </expression>
    Je souhaitais obtenir une mise en forme de ce xml au format html après appel de mon ".xml" dans un navigateur internet ou autre le mieux serait dans une application en delphi (ouais je sais ca craint fichier web+delphi ) avec le fichier ".xsl" suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
      <xsl:template match="/">
      	 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	     <head>    
    	       <title>Feuille d'exercice</title>
          </head>
        <body>
            <b><xsl:apply-templates select="/expression/consigne"/></b>
            <p> ---------------------- </p>               
           <xsl:for-each select="/expression/monome">
    						<p><b>Signe: <xsl:value-of select="/expression/monome/signe"/></b></p>
    					   <p><b>coefficient: intervalle >> <xsl:value-of select="/expression/monome/coefficient/@intervalle"/></b></p>
    					    <p><b>Inconnue <xsl:value-of select="/expression/monome/inconnue"/></b></p>
    			</xsl:for-each>
        </body>
        </html>
    </xsl:template>
    </xsl:stylesheet>
    Et ma première question était de savoir pourquoi mon ".xsl" marchait pas, la il fonctionne j'ai tout corrigé !

    Ma deuxième question c'est existe-t-il une balise du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:format-sortie = "{Mon_exo}.html"/>
    Qui permettrait de générer automatiquement à chaque appel de ce ".xml" un fichier ".html"

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 612
    Points
    21 612
    Par défaut
    Citation Envoyé par byakuichi Voir le message
    Bon j'ai réussi finalement voila ce que j'avais dans mon xml (Je pensais pas avoir besoin de donné un contexte juste pour corrigé les erreurs de mon ".xsl") :
    Et tu as parfaitement raison. Je ne t'ai pas demandé le contenu du fichier (ça peut jamais faire de mal, mais en l'occurrence c'est pas de ça qu'on avait besoin.) Je t'ai demandé quel genre d'opérations tu fais sur ton ordinateur, qui fassent intervenir XSLT. En gros, tu cliques sur quoi, crénom ?

    En effet, j'isole deux manières de faire une transformation XSLT :
    - Genre par un navigateur : On demande au navigateur d'ouvrir un fichier .xml, qui référence un fichier .xsl, et le navigateur affiche le résultat de la transformation. Dans ce cas, aucun fichier n'est créé ni ne peut être créé, puisque la seule chose qui se passe est l'affichage du résultat. (Je simplifie un peu mais c'est tout comme.)
    - Genre par un programme quelconque de transformation, auquel on fournit d'un côté un .xml et un .xsl, et qui produit de l'autre côté le fichier résultat de la transformation. Dans ce cas le fichier existe déjà, il est là sous tes yeux, et tu es bien obligé de le savoir puisque tu as vu le résultat de la transformation.

    Donc, ma question est simple, dans lequel de ces deux cas es-tu, et qu'est-ce que c'est que cette histoire de générer un fichier .html ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 65
    Points
    65
    Par défaut
    J'ai trouvé comment faire avec Delphi, c'était pas spécialement compliqué en réalité.

    Je poste ici ce que j'ai trouvé comme solution, ici-même sur développez.net (Merci @ ALWEBER) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TForm1.Button1Click(Sender: TObject);
    var
      sl1,sl2 : TStringList ;
    begin
      sl1 :=  TStringList.create ;
      sl1.LoadFromFile('aa1.xml');
      sl2 :=  TStringList.create ;
      sl2.LoadFromFile('aa1.xsl');
      Memo1.lines.Text := FusionXMLXSL (sl1.Text,sl2.Text) ;
      Memo1.lines.SaveToFile ('mafiche.htm') ;
      sl1.Free ;
      sl2.Free ;
    end;

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 612
    Points
    21 612
    Par défaut
    Techniquement, cela nous apprend plutôt la question que sa solution, mais merci.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Le clic sur un objet HTML ne fonctionne pas
    Par womannosky dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 10/03/2010, 11h19
  2. [MooTools] [Request.HTML] ne fonctionne pas.
    Par Fused dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 21/11/2009, 19h23
  3. Ajax et XML. Mon script ne fonctionne pas.
    Par Dougui_bzh dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/07/2008, 09h04
  4. [HTML] menu fonctionne pas sous ie
    Par deepuser dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 27/03/2008, 14h54
  5. code action script et xml valide mais ne fonctionne pas
    Par artotal dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/03/2006, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo