Accent xml

Eléphant du PHP | 424 Messages

06 nov. 2012, 17:38

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.
Youpi Youpi Yo !

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

06 nov. 2012, 21:18

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>
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 424 Messages

07 nov. 2012, 00:31

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 ?
Youpi Youpi Yo !

ViPHP
xTG
ViPHP | 7331 Messages

07 nov. 2012, 10:53

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...

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

07 nov. 2012, 14:33

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
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène