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

Bibliothèques et frameworks PHP Discussion :

[SimpleXML] utf-8 et simplexml_load_file


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 102
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    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 :
    Entity 'eacute' not defined
    Ma page est au format UTF-8 ainsi que mon fichier XML. Quelqu'un aurait-il une solution ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Par défaut
    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
    & # 233 ;
    (sans les espaces, bien sur)

    a verifier...

    Autre solution, declarer l'entité &eacute; dans ta DTD...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 102
    Par défaut
    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 ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Par défaut
    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 : 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
    <-- 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 "û">

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Par défaut
    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

Discussions similaires

  1. [SimpleXML] Utilisation de simplexml_load_file()
    Par Forza Correza dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 17/07/2007, 15h45
  2. [SimpleXML] simplexml_load_file sur un fichier distant
    Par ANISSS dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 03/07/2007, 14h47
  3. [SimpleXML] Pourquoi simplexml_load_file refuse les caractères latins ?
    Par lavercq dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/02/2007, 23h03
  4. [SimpleXML] Utilisation de la fonction simplexml_load_file()
    Par defacta dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 02/11/2006, 11h20
  5. [SimpleXML] simplexml_load_file et URL
    Par nicolargo dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/09/2006, 11h02

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