Page 1 sur 1

Accent xml

Posté : 06 nov. 2012, 17:38
par Dom!
Bonjour,
Mon fichier xml comporte des accents sur certaines valeurs.

Lorsque je fais un import du xml dans ma bdd l'import ne fonctionne pas sur les valeurs avec un accent.

exemple :
<Télécopie>04.93.13.81.92</Télécopie> ----> Ne fonctionne pas
<Telecopie>04.93.13.81.92</Telecopie> ----> Fonctionne

Comment puis contourner ce problème ?

Merci pour votre aide.

Re: Accent xml

Posté : 06 nov. 2012, 21:18
par sadeq
Bonjour, il faut utiliser les noms de champs sans accents pour les champs de la base de données et les balises XML, car ce sont des métadonnées et non des données (valeurs stockables).
La forme adéquate est donc:
<Telecopie>04.93.13.81.92</Telecopie>

Re: Accent xml

Posté : 07 nov. 2012, 00:31
par Dom!
Merci mais mo probleme est que mon xml m arrive tel que,, je n ai pas le choix d enlever les accents... Je ne peux pas faure autrement ?

Re: Accent xml

Posté : 07 nov. 2012, 10:53
par xTG
En utilisant le même encodage dans le fichier et dans la bdd cela passerai-t-il ? (quitte à modifier l'encodage du fichier avant de l'importer)
Et au passage tu peux aller taper sur le créateur de ce fichier...

Re: Accent xml

Posté : 07 nov. 2012, 14:33
par sadeq
Merci mais mo probleme est que mon xml m arrive tel que,, je n ai pas le choix d enlever les accents... Je ne peux pas faure autrement ?
Comment procèdes-tu pour importer le fichier XML? par PHPMyAdmin ou par un programme PHP?

J'avais dit :
Bonjour, il faut utiliser les noms de champs sans accents ...
Mais en fait, ce n'est pas une obligation, ça sort simplement du standard de nommage chez les développeurs et pour certains systèmes.
MySQL accepte les noms des champs accentués et PHPMyAdmin les exporte et importe bien dans le format XML (dont la structure est bien spéciale) voici un exemple d'exportation XML sous MySQL:
<?xml version="1.0" encoding="utf-8"?>
<!--
- phpMyAdmin XML Dump
- version 3.4.10.1
- http://www.phpmyadmin.net
-
- Client: localhost
- Généré le : Mar 06 Novembre 2012 à 23:30
- Version du serveur: 5.5.20
- Version de PHP: 5.3.10
-->

<pma_xml_export version="1.0" xmlns:pma="http://www.phpmyadmin.net/some_doc_url/">
    <!--
    - Structure schemas
    -->
    <pma:structure_schemas>
        <pma:database name="test" collation="latin1_swedish_ci" charset="latin1">
            <pma:table name="t1">
                CREATE TABLE `t1` (
                  `accentué` int(11) NOT NULL
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
            </pma:table>
        </pma:database>
    </pma:structure_schemas>

    <!--
    - Base de données: 'test'
    -->
    <database name="test">
        <!-- Table t1 -->
        <table name="t1">
            <column name="accentué">1</column>
        </table>
        <table name="t1">
            <column name="accentué">2</column>
        </table>        
		<table name="t1">
            <column name="accentué">3</column>
        </table>
        <table name="t1">
            <column name="accentué">4</column>
        </table>
    </database>
</pma_xml_export>
Sinon, pour avoir une vue plus claire du sujet, regardes ce beau tuto de notre cher @rthur : faq-tutoriels/importer-des-donnees-xml- ... 43506.html