Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > SimpleXML
SimpleXML Forum d'entraide pour l'extension SimpleXML, qui permet de manipuler des documents XML en PHP (approche DOM).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2006, 16h47   #1
Membre du Club
 
Inscription : juin 2005
Messages : 102
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juin 2005
Messages : 102
Points : 51
Points : 51
Par défaut [SimpleXML] utf-8 et simplexml_load_file

J'ai fais pas mal de recherche dans les forums et n'ai pas trouvé de solution à mon problème.
J'ai un fichier xml
Code XML :
1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8"?>
<module>
  <name>news</name>
  <label>Actualités</label>
  <desc>Module de News.</desc>
</module>
que je charge avec simplexml_load_file. J'obtiens un message m'indiquant :
Citation:
Input is not proper UTF-8
ce qui est normal étant donné le é de Actualités que je modifie ensuite en &eacute;. Là j'obtiens le message suivant :
Citation:
Entity 'eacute' not defined
Ma page est au format UTF-8 ainsi que mon fichier XML. Quelqu'un aurait-il une solution ?
franck.thibault est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 17h30   #2
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 311
Points : 311
Il me semble me souvenir qu'en XML, les entités ne sont pas les entités HTML mais les codes ascii ..?

donc le é ne serait pas traduit par &eacute; mais par
Citation:
& # 233 ;
(sans les espaces, bien sur)

a verifier...

Autre solution, declarer l'entité &eacute; dans ta DTD...
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 23h45   #3
Membre du Club
 
Inscription : juin 2005
Messages : 102
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juin 2005
Messages : 102
Points : 51
Points : 51
Citation:
Envoyé par zevince
Il me semble me souvenir qu'en XML, les entités ne sont pas les entités HTML mais les codes ascii ..?

donc le é ne serait pas traduit par &eacute; mais par
(sans les espaces, bien sur)

a verifier...
Je confirme ça marche. Merci.

Citation:
Envoyé par zevince
Autre solution, declarer l'entité &eacute; dans ta DTD...
Je n'y connais rien en XML comme tu peux le voir dans mon fichier (post initial).
Je mets ça où ma DTD ? Comment je peux écrire directement Actualités avec le é entre mes balises ? avec une déclaration dans ma DTD ?
franck.thibault est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 10h37   #4
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 311
Points : 311
non, tu ne pourras pas laisser le "é" directement, mais tu peux utiliser l entité & eacute; en la declarant dans la DTD du genre :
Code XML :
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
<-- Fichier accents.ent -->
<!ENTITY Agrave "À">
<!ENTITY Aacute "Á">
<!ENTITY Acirc "Â">
<!ENTITY AElig "Æ">
<!ENTITY Ccedil "Ç">
<!ENTITY Egrave "È">
<!ENTITY Eacute "É">
<!ENTITY Ecirc "Ê">
<!ENTITY Igrave "Ì">
<!ENTITY Iacute "Í">
<!ENTITY Icirc "Î">
<!ENTITY Ograve "Ò">
<!ENTITY Oacute "Ó">
<!ENTITY Ocirc "Ô">
<!ENTITY Ugrave "Ù">
<!ENTITY Uacute "Ú">
<!ENTITY Ucirc "Û">
<!ENTITY agrave "à">
<!ENTITY aacute "á">
<!ENTITY acirc "â">
<!ENTITY aelig "æ">
<!ENTITY ccedil "ç">
<!ENTITY egrave "è">
<!ENTITY eacute "é">
<!ENTITY ecirc "ê">
<!ENTITY igrave "ì">
<!ENTITY iacute "í">
<!ENTITY icirc "î">
<!ENTITY ograve "ò">
<!ENTITY oacute "ó">
<!ENTITY ocirc "ô">
<!ENTITY ugrave "ù">
<!ENTITY uacute "ú">
<!ENTITY ucirc "û">
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 23h17   #5
Invité régulier
 
Inscription : avril 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 13
Points : 5
Points : 5
Salut

J'ai le même problème que le post initial.
Seulement dans mon cas ce sont des dizaines de fichiers xml générés par jour par un serveur de jeu, donc je ne peux pas modifier ces fichiers.
Y a t'il un moyen de résoudre le problème autrement ?
Merci
jenffou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h09.


 
 
 
 
Partenaires

Hébergement Web