DomXML et accents

DomXML et accents - PHP - Programmation

Marsh Posté le 17-11-2004 à 17:09:16    

Bonjour,
j'ai un problème d'accentuation (que tout le monde doit avoir avec le dom) mais je suis obligé de les conserver.
Les accents du fichier xml sont perdus à la transformation en DOM.
Mon fichier XML est à la norme ISO-8859-1, normal, et j'ai déjà essayé de passer les accents en é ou é.
J'ai aussi essayé de l'encoder en UTF-8 à l'aide de utf8_encode() sans oublier de changer la correspondance dans le fichier XML mais rien ne marche. :pt1cable:  
J'espère que quelqu'un aura déjà solutionner ce pb...
Merci.

Reply

Marsh Posté le 17-11-2004 à 17:09:16   

Reply

Marsh Posté le 18-11-2004 à 16:42:33    

Vu que personne ne peut m'aider, j'ai adopté la méthode la moins jolie qui soit (peut être qu'elle pourra malgré tout aider celui qui la verra :)  
 

Code :
  1. function ConvertirHieroglyphe($chaine)
  2. {
  3. if ($chaine != NULL)
  4. {
  5.  $chaine = str_replace("Ã".chr(160), "à", $chaine);
  6.  $chaine = str_replace("ä", "ä", $chaine);
  7.  $chaine = str_replace("â", "â", $chaine);
  8.  $chaine = str_replace("á", "á", $chaine);
  9.  $chaine = str_replace("ç", "ç", $chaine);
  10.  $chaine = str_replace("è", "è", $chaine);
  11.  $chaine = str_replace("é", "é", $chaine);
  12.  $chaine = str_replace("ê", "ê", $chaine);
  13.  $chaine = str_replace("ë", "ë", $chaine);
  14.  $chaine = str_replace("ì", "ì", $chaine);
  15.  $chaine = str_replace("î", "î", $chaine);
  16.  $chaine = str_replace("ñ", "ñ", $chaine);
  17.  $chaine = str_replace("ò", "ò", $chaine);
  18.  $chaine = str_replace("ó", "ó", $chaine);
  19.  $chaine = str_replace("ô", "ô", $chaine);
  20.  $chaine = str_replace("ö", "ö", $chaine);
  21.  $chaine = str_replace("ù", "ù", $chaine);
  22.  $chaine = str_replace("ú", "ú", $chaine);
  23.  $chaine = str_replace("û", "û", $chaine);
  24.  $chaine = str_replace("ü", "ü", $chaine);
  25.  $chaine = str_replace("ï", "ï", $chaine);
  26.  $chaine = str_replace("Ã",  "í", $chaine);
  27. }
  28. return $chaine;
  29. }


 

Reply

Marsh Posté le 19-11-2004 à 14:57:01    

Tu sais que tu peux passer à str_replace() un tableau de caractères à remplacer et un tableau des caractères remplaçants... par ailleurs, j'utilise Sablotron pour faire une transformation xslt et j'ai pas de pb avec les accents. Par contre, faut que ton document xml indique bien le charset tout comme ta feuille de style xsl... je sais pas si ça va t'aider.

Reply

Marsh Posté le 19-11-2004 à 15:55:56    

j'ai pas de feuilles xsl, je me sers juste de xml pour alimenter une base de données.
Mais pour les replace c vrai !
j'ai repris un travail commencé, y en avait des longues listes  et j'ai pas tilté :)

Reply

Marsh Posté le 19-11-2004 à 16:07:29    

tu parses ton xml avec expat, j'imagine... Je me souviens que pour sablotron, fallait configurer le charset, sinon, il en mettait un par défaut qui faisait péter les accents. Peut-êrte que pour expat c'est pareil. Va sur une aide en ligne de php genre http://fr3.php.net/

Reply

Marsh Posté le 19-11-2004 à 16:43:07    

non y a une fonction domxml_dump_file/mem qui charge le fichier dans une variable (avec des fils, parents, frères...)
Pour la fonction, on peut pas spécifier le charset, c'est là qu'est le pb !
Mais bon, maintenant g fini donc je pense qu'on peut oublier :)
J'avais cherché sur pas mal de forums, le pb est récurrent et y avait pas de solution miracle visiblement.
Merci quand même. :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed