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

XSL/XSLT/XPATH XML Discussion :

Encodage fichier XML


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre confirmé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 91
    Par défaut Encodage fichier XML
    Bonjour,

    Je rencontre un problème avec l'encodage d'un fichier XML.
    Voici le code que j'utilise pour générer le fichier à partir des données d'une base MySQL :
    Code php : 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
    <?php
        if(!$dbconn = mysql_connect('localhost', 'root', '')) {
           echo "Echec de la connexion MySQL au serveur 'localhost'.";
           exit;
        }
        if (!mysql_select_db('configuration')) {
           echo "Echec de la connexion à la base 'configuration'";
           exit;
        }
        $table_id = 'client';
        $query = "SELECT * FROM $table_id";
        $dbresult = mysql_query($query, $dbconn);
    // create a new XML document
    $doc = new DomDocument('1.0' , 'UTF-8');
    // create root node
    $root = $doc->createElement('root');
    $root = $doc->appendChild($root);
    while($row = mysql_fetch_assoc($dbresult)) {   //--> Une ligne à la fois
      $occ = $doc->createElement($table_id);       //--> Un noed a chaque ligne
      $occ = $root->appendChild($occ);
      foreach ($row as $fieldname => $fieldvalue) {   //--> Ajout d'un noeud fils pour chaque champ
        $child = $doc->createElement($fieldname);    //--> Nom du child et sa valeur a ajouter
        $child = $occ->appendChild($child);
        $value = $doc->createTextNode($fieldvalue);
        $value = $child->appendChild($value);
      }
    }
    $xml_string = $doc->saveXML();
    file_put_contents ('test.xml', $xml_string);
    ?>

    et voila le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="UTF-8"?>
    <root><client><id>1</id><Nom>Marie-Hꭨne PROUST</Nom><Adresse>Pigemolle</Adresse><Ville>85490 BENET</Ville><Latitude>46.388161</Latitude><Longitude>-0.575875</Longitude><Informatique>PC Fixe</Informatique><Internet>ADSL</Internet><Service>Oui</Service></client><client><id>2</id><Nom>Samuel PATARIN</Nom><Adresse>11, Rue de l'Aum��ie</Adresse><Ville>85490 BENET</Ville><Latitude>46.369358</Latitude><Longitude>-0.585604</Longitude><Informatique>PC Portable</Informatique><Internet>ADSL</Internet><Service>Non</Service></client></root>
    Le é est remplacé par : xE9, le è par xE8 et le ô par xF4.

    Pour que le fichier soit exploitable par un navigateur, il faut que je fasse la manipulation suivante avec Notepad++ :
    - Sélectionner "Encodage en UTF-8"
    puis
    - Sélectionner "Encodage en ANSI"
    puis

    - Sélectionner "Convertir en UTF-8".


    Le texte devient alors lisible et affichable par le navigateur.

    Une idée pour se passer de cette procédure un peu fastidieuse et pas très propre ?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Ça m'a tout l'air d'une limitation PHP (encore une .)
    À mon avis les habitués de ce langage sauront plus facilement retrouver l'endroit exact où intervenir.

    Je déplace, ou tu penses que ceux qui sauront répondre auront plus de chance de venir ici que sur le forum PHP ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 91
    Par défaut Encodage fichier XML
    J'ai trouvé une solution en rajoutant à la fin de mon code le codage suivant :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $xml_string_1 = utf8_encode($xml_string );
    Cette fois çà à l'air de fonctionner

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Félicitations et merci pour ce retour !
    Pense à cliquer sur le bouton Résolu !
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    A priori, si tu récupérais les données de la base directement en UTF-8, tu ne devrais pas avoir besoin de cette manipulation.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. encodage fichier xml
    Par Nico_lag dans le forum Langage
    Réponses: 2
    Dernier message: 29/11/2012, 08h24
  2. encodage fichier XML avec tinyxml et Visual Studio 2008 C++
    Par hal9000 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 08/04/2009, 17h14
  3. [java]Encodage fichier XML avec XMLType
    Par adrien.nicolet dans le forum Oracle
    Réponses: 1
    Dernier message: 08/03/2007, 13h09
  4. [DOM] Récupérer l'encodage d'un fichier xml en php5
    Par Rakken dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/11/2006, 14h31
  5. [XSL][C++]encodage fichier xml
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 22/02/2006, 09h45

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