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
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
Dernière tentative pour t'aider...
http://www.linuxfocus.org/Francais/J...ticle156.shtml
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
ça peut aider en effetEnvoyé par Melvine
![]()
j'ai revu le post sur pdx::simple
le lien que t'indique explique comment faire l'installation donc nikel
sans rancune
je viens de faire ce script en me basant sur un autre script
voila mon fichier
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;
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
j'avais tester avec un premier fichier xml et 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>
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
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 ?
pour mon premiere essai j'ai tester avec un code xml et une xsl simple
xml
xsl
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>
et à l'affichage dans mon shell(cmd sous window) j'avais
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>
j'ai juste modifier le xsl et le contenu du fichier xmldoc1.xml
First paragraph
Last paragraph
j'utilise cette feuille de style
j'ai bien preciser le @ pour attribut,
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>
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>
en faite j'ai capter
il suffit juste de faire cela
et la comme j'ai mis @* j'aurai la valeur de tout les attribut concatené
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 >
mon script se presente ainsi
j'ai le resultat directement sur la sortie standard comment pourrai je faire pour l'avoir dans un fichier .html ???
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();
Merci
Bonjour.
Il suffit de rajouter le handle de ton fichier html ente print et $xslt->toString, c'est pas plus compliqué que ça...
j'ai rajouter cela
ça me créee bien le fichier out.html mais il est vide
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;
est ce normal ???
Oui c'est normal tu as pas mis dans quoi tu l'imprimes.Envoyé par Melvine
Code : Sélectionner tout - Visualiser dans une fenêtre à part print FILE $xslt->toString;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager