Bonjour,

Je me retrouve avec un problème très étrange. Lorsque j'extrais des données d'un fichier xml avec xsl les caractères accentués tels que "é" s'affiche à la condition qu'il soit dans une balise. Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<mabalisedextraction><h1>titre accentu&eacute;</h1></mabalisedextraction>
me donne en résultat : "titre accentué"
Les accents ne s'affiche carrément pas si ils ne sont pas dans une balise. Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<mabalisedextraction><h1>titre accentu&eacute;.</h1>&Ecirc;tre ou ne pas &ecirc;tre accentu&eacute;,tel est la question!</mabalisedextraction>
me donne en résultat : "titre accentué. tre ou ne pas tre accentu, tel est la question!"

J'ai affiché le code source renvoyé par mon navigateur... c'est simple, les caractères accentués ne sont tout bonnement pas présent... pas une trace, rien!

Voici mon fichier xsl en résumé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output 
  method="xml"
  encoding="iso-8859-1"
  doctype-system="madtd.dtd" />
	<xsl:template match="/">
		<xsl:copy-of select="mabalisedextraction/node()" />
	</xsl:template>
</xsl:stylesheet>
Voici mon fichier madtd.dtd :
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="iso-8859-1" ?>
<!ENTITY nbsp " ">
<!ENTITY aacute "&#x00E1;"> <!ENTITY Aacute "&#x00C1;">
<!ENTITY acirc  "&#x00E2;"> <!ENTITY Acirc  "&#x00C2;">
<!ENTITY agrave "&#x00E0;"> <!ENTITY Agrave "&#x00C0;">
<!ENTITY aring  "&#x00E5;"> <!ENTITY Aring  "&#x00C5;">
<!ENTITY atilde "&#x00E3;"> <!ENTITY Atilde "&#x00C3;">
<!ENTITY auml   "&#x00E4;"> <!ENTITY Auml   "&#x00C4;">
<!ENTITY aelig  "&#x00E6;"> <!ENTITY AElig  "&#x00C6;">
<!ENTITY ccedil "&#x00E7;"> <!ENTITY Ccedil "&#x00C7;">
<!ENTITY eth    "&#x00F0;"> <!ENTITY ETH    "&#x00D0;">
<!ENTITY eacute "&#x00E9;"> <!ENTITY Eacute "&#x00C9;">
<!ENTITY ecirc  "&#x00EA;"> <!ENTITY Ecirc  "&#x00CA;">
<!ENTITY egrave "&#x00E8;"> <!ENTITY Egrave "&#x00C8;">
<!ENTITY euml   "&#x00EB;"> <!ENTITY Euml   "&#x00CB;">
<!ENTITY iacute "&#x00ED;"> <!ENTITY Iacute "&#x00CD;">
<!ENTITY icirc  "&#x00EE;"> <!ENTITY Icirc  "&#x00CE;">
<!ENTITY igrave "&#x00EC;"> <!ENTITY Igrave "&#x00CC;">
<!ENTITY iuml   "&#x00EF;"> <!ENTITY Iuml   "&#x00CF;">
<!ENTITY ntilde "&#x00F1;"> <!ENTITY Ntilde "&#x00D1;">
 
<!ENTITY Ograve "Ò">   <!ENTITY ograve "ò"> 
<!ENTITY Oacute "Ó">   <!ENTITY oacute "ó">
<!ENTITY Ocirc  "Ô">   <!ENTITY ocirc  "ô">
<!ENTITY Ouml   "Ö">   <!ENTITY ouml   "ö">
<!ENTITY Ugrave "Ù">   <!ENTITY ugrave "ù">
<!ENTITY Uacute "Ú">   <!ENTITY uacute "ú">
<!ENTITY Ucirc  "Ö">   <!ENTITY ucirc  "û">
<!ENTITY Uuml   "Ü">   <!ENTITY uuml   "ü">
Voici mon fichier xml en résumé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE dtdsite SYSTEM "http://www.my-sion.ch/dtd.dtd">
<mabalisedextraction>
    <h1>titre accentu&eacute;.</h1>&Ecirc;tre ou ne pas &ecirc;tre accentu&eacute;,tel est la question!
</mabalisedextraction>
Voici ma fonction php en résumé :
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
 
	$xml = new DOMDocument;
	$xml->resolveExternals = TRUE;
	$xml->substituteEntities = FALSE;
	$xml->load($xmlFile);
 
	$xsl = new DOMDocument;
	$xsl->load($xslFile);
	$xhtml = new XSLTProcessor;
 
	//Affectation de la feuille de style
	$xhtml->importStyleSheet($xsl);
 
	// Transformation du document XML selon la feuille XSL
	return($xhtml->transformToXML($xml));
Voilà, vous savez tout... et j'avoue ne pas comprendre quel différence il y a entre un caractère accentué dans une balise et un autre hors balise...

Merci d'avance pour vos lumières.
Cordialement,
Grégoire