Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOMXML
DOMXML Forum d'entraide pour l'extension DOMXML permettant de manipuler des documents XML en PHP 4 (approche DOM). Avant de poster -> tutoriels DOMXML
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 13/04/2006, 16h18   #1
Membre confirmé
 
Avatar de dam_moreyllo
 
Développeur Web
Inscription : mai 2004
Messages : 251
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2004
Messages : 251
Points : 225
Points : 225
Par défaut [DOMXML] problème de jeu de caractères

Bonjour !
J'ai une petite fonction qui permet de generer une requete sql a partir d'un fichier xml. ce fichier utilise le jeu de caractères ISO-8859-1. les accents et tout sont bien représentés dedans.
Mon problème, c'est que quand je lie le fichier avec DOM XML, même si c'est que pour afficher directement sur la page (donc sans passer par mysql), les accents et autres sont convertis en caractères bizarres du style é !

Ma fonction :
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
<?php
function xml2mysql_attribute($fichier, $table, $tab) {
   if(!$dom = domxml_open_file($fichier)) {
       echo "Erreur lors de l'analyse du document\n";
       return;
   }
   $root = $dom->document_element();
   $child = $root->first_child();
 
   // Construction de la requete :
 
   $rqt = "INSERT INTO ".$table." (";
   foreach($tab as $valeur) {
         $rqt .= strtoupper($valeur).", ";
   }
   $rqt = substr($rqt, 0, strrpos($rqt, ", ")).") VALUES ('";
 
   $nb_reponse = 0;
   while($child) {
        if ($child->node_type() != XML_TEXT_NODE) {
             foreach ($tab as $valeur) {
                  $rqt .= mysql_real_escape_string($child->get_attribute($valeur))."', '";
             }
             $rqt = substr($rqt, 0, strrpos($rqt, ", '"))."), ('";
             $nb_reponse++;
        }
        $child = $child->next_sibling();
   }
   return array(substr($rqt, 0, strrpos($rqt, ", ('")), $nb_reponse);
}
?>
Avez-vous une idée pour résoudre ce problème ?
Merci d'avance
dam_moreyllo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 16h54   #2
Membre expérimenté
 
Inscription : octobre 2004
Messages : 872
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 872
Points : 582
Points : 582
salut
regarde du cote de utf8_encode
jeff_! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 09h04   #3
Membre confirmé
 
Avatar de dam_moreyllo
 
Développeur Web
Inscription : mai 2004
Messages : 251
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2004
Messages : 251
Points : 225
Points : 225
Bonjour,

J'avais déjà essayé mais ça ne marche pas...
Et si dans le fichier xml je change le encoding="ISO-8859-1" en encoding="UTF-8" ou encore que j'enlève carrement l'encoding, ça plante à la lecture du fichier, dans la fonction domxml_open_file...
Au fait j'ai oublié de préciser que je suis obligé de faire en php4 , sinon je me ferai un grand plaisir à utiliser simplexml...
dam_moreyllo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 10h56   #4
Expert Confirmé
 
Avatar de franculo_caoulene
 
Inscription : octobre 2003
Messages : 2 886
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 886
Points : 2 559
Points : 2 559
Question bête. Tu as déclaré le jeu de caractères mais le fichier est-il sauvegardé en utilisant ce même jeu de caractères? Genre tu déclares en ISO-8859-1 mais ton fichier est sauvegardé en UTF-8.

Je l'ai dit, question bête.
__________________
Penser à la recherche et au bouton
franculo_caoulene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 11h18   #5
Membre confirmé
 
Avatar de dam_moreyllo
 
Développeur Web
Inscription : mai 2004
Messages : 251
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2004
Messages : 251
Points : 225
Points : 225
Ben c'est vrai que le problème viens peut être de là, mais je ne peux pas savoir parce que ce fichier XML est généré par un logiciel utilisé par notre client... et apparement ce logiciel n'est pas très configurable... mais encore une fois je peux pas savoir parce que moi je le connais pas ce logiciel, et vu que pour l'instant la personne la plus susceptible de le savoir n'est pas la... ben j'essai de trouver des alternatives !
Mais apparement c'est mal barré...
Merci quand même a vous !
dam_moreyllo 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 19h23.


 
 
 
 
Partenaires

Hébergement Web