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

Modules Perl Discussion :

xml + xslt = html


Sujet :

Modules Perl

  1. #1
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut xml + xslt = html
    salut,

    Est ce que vous auriez des tutos qui explique comment utiliser le module xslt de perl.
    J'ai un doc xml et je souhaiterais avoir en sortir une page html;

    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 582
    Points : 2 030
    Points
    2 030
    Par défaut
    Dernière tentative pour t'aider...

    http://www.linuxfocus.org/Francais/J...ticle156.shtml

  3. #3
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut
    je te remerci
    cette doc en faite je l'ai deja lu
    et je viens de tester le script
    mais j'ai pas le module donc faut que je l'installe

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 582
    Points : 2 030
    Points
    2 030
    Par défaut
    Citation Envoyé par Melvine
    mais j'ai pas le module donc faut que je l'installe
    ça peut aider en effet

  5. #5
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut
    j'ai revu le post sur pdx::simple
    le lien que t'indique explique comment faire l'installation donc nikel
    sans rancune

  6. #6
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut
    je viens de faire ce script en me basant sur un autre script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/usr/bin/perl
    use XML::XSLT;
     
    my $xmlfile = "xslt.xml";
    my $xslfile = "xsl.xsl";
     
    my $parser = XML::XSLT->new ($xslfile);
     
    $parser->transform ($xmlfile);
    #$parser->print_result();
    print $parser->toString;
    voila mon fichier
    xml
    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"?>
     
    <personne>
     
    <nom>Pillou</nom>
     
    <prenom>Jean-François</prenom>
     
    </personne>
     
    <personne>
     
    <nom>VanHaute</nom>
     
    <prenom>Nico</prenom>
     
    </personne>
     
    <personne>
     
    <nom>Andrieu</nom>
     
    <prenom>Seb</prenom>
     
    </personne>

    et 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="http://www.w3.org/TR/REC-html40"
    result-ns="">
     
    	<xsl:template match="/">
     
    		<HTML>
     
    		<HEAD>
     
    		  <TITLE>Titre de la page</TITLE>
     
    		</HEAD>
     
    		<BODY BGCOLOR="#FFFFFF">
     
    		<xsl:apply-templates/>
     
    		</BODY>
     
    		</HTML>
     
    	</xsl:template >
     
    	<xsl:template match="personne" >
     
    		<ul>
     
    			<li>
     
    			<xsl:value-of select="nom"/>
     
    			-
    			<xsl:value-of select="prenom"/>
     
    			</li>
     
    		</ul>
     
    	</xsl:template >
     
    </xsl:stylesheet>
    j'avais tester avec un premier fichier xml et xsl
    et sa m'affichait bien mes element et la sa ne fonctionne pas
    j'ai un message d'erreur que je ne comprend pas
    Error while parsing:
    not well-formed (invalid token) at line 4, column 0, byte 64 at C:/Perl/site/lib
    /XML/Parser.pm line 185
    ???

  7. #7
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 582
    Points : 2 030
    Points
    2 030
    Par défaut
    Qu'est-ce qui a changé dans ton code ou tes fichiers entre ton 1er essai qui marchait et le second qui génère le message d'erreur ?

  8. #8
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut
    pour mon premiere essai j'ai tester avec un code xml et une xsl simple

    xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <chapter>
     <title>doc1.xml</title>
     <p>First paragraph</p>
     <transclusion src="doc2.xml"/>
     <p>Last paragraph</p>
    </chapter>
    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
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
         version="1.0">
     
      <xsl:template match="transclusion">
        <xsl:copy-of select="document(@src)"/>
      </xsl:template>
     
      <xsl:template match="@*|node()">
        <xsl:copy>
          <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
      </xsl:template>
     
    </xsl:stylesheet>
    et à l'affichage dans mon shell(cmd sous window) j'avais
    doc1.xml
    First paragraph

    Last paragraph
    j'ai juste modifier le xsl et le contenu du fichier xml

  9. #9
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut
    j'utilise cette feuille de style
    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
    30
    31
    32
    33
    34
    35
    36
    <?xml version="1.0"?>
    <xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="http://www.w3.org/TR/REC-html40"
    result-ns="">
     
    	<xsl:template match="/">
     
    		<HTML>
     
    		<HEAD>
     
    		  <TITLE>Titre de la page</TITLE>
     
    		</HEAD>
     
    		<BODY BGCOLOR="#FFFFFF">
     
    		<xsl:apply-templates/>
     
    		</BODY>
     
    		</HTML>
     
    	</xsl:template >
     
    	<xsl:template match="text() | @*"> 
     
     
     
       <xsl:apply-templates select="@* | node()" /> 
     
     
    	</xsl:template >
     
    </xsl:stylesheet>
    j'ai bien preciser le @ pour attribut,
    donc j'ai ce qu'il y a entre les balises qui s'affiche mais pas ce qu'il ya dans les attribut;
    voila mon fichier xml:
    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <indiv>
    <personne>
     
    <nom name="a">Pillou</nom>
     
    <prenom>Jean-François</prenom>
     
    </personne>
     
    <personne>
     
    <nom name="b">VanHaute</nom>
     
    <prenom>Nico</prenom>
     
    </personne>
     
    <personne>
     
    <nom name="c">Andrieu</nom>
     
    <prenom>Seb</prenom>
     
    </personne>
    </indiv>

  10. #10
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut
    en faite j'ai capter
    il suffit juste de faire cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl:template match="nomdemabalise"> 
     
     
     
       <xsl:apply-templates select="@*" /> 
     
     
    	</xsl:template >
    et la comme j'ai mis @* j'aurai la valeur de tout les attribut concatené

  11. #11
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut
    mon script se presente ainsi


    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
    30
    # !/usr/bin/perl
     
     
    use XML::XSLT;
     
     
    my $xslfile = "xsl.xsl";
    my $xmlfile = "proit.xml";
     
     
    my $xslt = eval { XML::XSLT->new ($xslfile, warnings => 1, debug => 0) };
     
     
    if ($@) {
     die("Sorry, Could not create an instance of the XSL Processor using $xslfile.\n");
    }
     
     
    eval { $xslt->transform ($xmlfile) };
     
     
    if ($@) {
     die("Sorry, Could not transform XML file, $xmlfile.\n");
    }
     
     
    print $xslt->toString;
     
     
    $xslt->dispose();
    j'ai le resultat directement sur la sortie standard comment pourrai je faire pour l'avoir dans un fichier .html ???

    Merci

  12. #12
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    Bonjour.

    Il suffit de rajouter le handle de ton fichier html ente print et $xslt->toString, c'est pas plus compliqué que ça...

  13. #13
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut
    j'ai rajouter cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ($@) {
     die("Sorry, Could not transform XML file, $xmlfile.\n");
    }
    
    open FILE, ">>./out.html" or die "Ne peut pas ouvrir le fichier html !!";
    
    # send to output
    print $xslt->toString;
    ça me créee bien le fichier out.html mais il est vide
    est ce normal ???

  14. #14
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par Melvine
    j'ai rajouter cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ($@) {
     die("Sorry, Could not transform XML file, $xmlfile.\n");
    }
    
    open FILE, ">>./out.html" or die "Ne peut pas ouvrir le fichier html !!";
    
    # send to output
    print $xslt->toString;
    ça me créee bien le fichier out.html mais il est vide
    est ce normal ???
    Oui c'est normal tu as pas mis dans quoi tu l'imprimes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print FILE $xslt->toString;

Discussions similaires

  1. XML, XSLT, HTML, XSL-FO, PDF
    Par ALCINA dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 09/12/2008, 10h40
  2. [XSLT][>HTML] transformer un XML
    Par ouiam dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 25/07/2006, 17h59
  3. [XML][XSLT][HTML]Accents!!
    Par norkius dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/05/2006, 10h13
  4. [XML][XSLT] WordML et HTML
    Par Landolsi dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/09/2005, 12h05
  5. [XSLT] Arbre XML -> Arbre HTML
    Par FT dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 29/09/2004, 09h49

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