Problème si une balise n'existe pas
Bonjour tous le monde!
J'viens de lire le jolie tuto proposé sur cette page: http://haypo.developpez.com/tutoriel/xml/xslt/
Mais mon petit soucis c'est que si une balise est ouverte et qu'elle n'est pas refermé dans mon fichier liste.xml, ça me renvoi cette erreur:
Citation:
Warning: Sablotron error on line 6: XML parser error 7: mismatched tag in /home.5/s/e/r/servicesng/www/fre/fre.php on line 7
Erreur XSLT ...
Voici mon code:
fichier php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?php
// Crée le processeur XSLT
$xh = xslt_create();
xslt_set_base ($xh, 'file://' . getcwd () . '/');
// Traite le document, puis affiche le résultat
$result = xslt_process($xh, 'liste.xml', 'xslt.xsl');
if (!$result)
echo ("Erreur XSLT ...");
else
echo ($result);
// Détruit le processeur XSLT
xslt_free($xh);
?> |
Fichier liste.xml:
Code:
1 2 3 4 5 6
| <?xml version="1.0" encoding="ISO-8859-1"?>
<p>
<gras>Salut ça va?</gras>
<ren>Kikou
<rien>ouaip et toi?</rien>
</p> |
Fichier xslt.xsl:
Code:
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
| <?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="html"
encoding="ISO-8859-1"
doctype-public="-//W3C//DTD XHTML 1.1//EN"
doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
indent="yes" />
<xsl:template match="p">
<p>
<xsl:apply-templates select="gras" />
<xsl:apply-templates select="italique" />
<xsl:apply-templates select="rien" />
</p>
</xsl:template>
<xsl:template match="gras">
<strong><xsl:value-of select="." /></strong>
</xsl:template>
<xsl:template match="italique">
<em><xsl:value-of select="." /></em>
</xsl:template>
<xsl:template match="rien">
<xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet> |
Ce que je souhaiterais c'est que si une balise est ouverte et n'est pas refermé alors qu'elle soit traité comme du texte normal.