XML to PHP

Résolu
cs_nuns Messages postés 87 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 23 juillet 2009 - 4 avril 2007 à 11:19
cs_nuns Messages postés 87 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 23 juillet 2009 - 4 avril 2007 à 13:33
Bonjour


J’espère que j’ai posté dans le bon endroit,

donc je vais expliquer la situation.


Je reçois par mail tout les mois un fichier Excel, et dans ce fichier
je dois récupérer une centaine de valeur que je dois mettre dans une
base de données MySql.


Donc je me suis dit que je pouvais sûrement le faire automatiquement par un scripte PHP, je gagnerais tout les mois au moins deux heurs c’est beau la vie. (Mais 2x12 sa fais un jour )


Pour la solution : je cherche à savoir si la méthode que j’utilise est
la bonne, parce que je ne connais pas bien le XML.je suis plutôt NB


Je pensais à procéder comme ce si. (Mais le problème est que je mie perd).


Déjà quand je reçois le fichier en Excel.


Je l’enregistre en XML, pour la lecture des valeurs je pense que c’est beaucoup plus facile.

je pense que je suis dans la bonne vois .


En suite, le system ou je dois rajouter les valeurs est en PHP4.

Déjà la j’ai commencé à pleurer parce que j’ai lu dans certain site que le Simple XML PHP5 était beaucoup plus facile a utiliser


Donc j’ai regardé comment parser un fichier XML en PHP j’ai finit par
trouver des commande un peut blizzard mais j’ai finit par trouver.


J’ai finalement réussi à obtenir un grand mais un grand tableau.

Donc je disais que j’avais réussi a mettre tout le XML dans un tableau,
mais la je ne sais pas comment vous le dire mais un tableau chez
tableau.


La je voulais savoir si je vais dans le bon chemin ? et biensure un petit coup de main please.


Donc la situation ou je me trouve est que je suis entrain de parcoure un tableau qui es énormes. un truc de fou


Je vais vous montrer un peux ce que j’ai :

le fichier XML

http://www.freenuns.com/download/divers/testbig.xml


voila le tableau que j'ai , mais j'ai deja descendu de quatre niveau.

http://www.freenuns.com/download/divers/tableau.txt

3 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
4 avril 2007 à 12:07
Salut,

Tu veux gagner un jour de vie par an, et rien que pour ça t'es déjà pas trop mal parti.

Pour "parser" ton XML dans cette complexe structure de tabeaux, tu as utilisé un truc nommé "parse_into_struct"... Vrai ? C'est une idée ingénieuse, mais effectivement : Pas facile a manipuler ce méchant tableau de tableaux de tableaux...

Je suis allé voir ton fichier XML... Il semble qu'il n'y ait qu'une table Excel à exporter.
Dans ce cas, pourquoi ne pas utiliser le format CSV ?

Example 601. Read and print the entire contents of a CSV file

<?php

$row = 1;
$handle = fopen("test.csv", "r");

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

    $num = count($data);

    echo " $num fields in line $row: 

\n";

    $row++;

    for ($c=0; $c < $num; $c++) {

        echo $data[$c] . "
\n";

    }

}
fclose($handle);
?>


A partir de là, chaque ligne de ta table Excel passe dans un tableau SIMPLE... Il ne reste plus qu'à inserer le tableau dans la base... "insert into table values ('".implode("','",$data)."')"

Fais attention de bien échaper les caractères avant MySQL !
3
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
4 avril 2007 à 12:36
Bonjour,

Je te conseille une solution beaucoup plus simple vu qu'un membre de CS à pris le temps de pondre un code pour lire un fichier excel par php : lecture de fichier excel

Bonne prog :)
<hr size="2" width="100%" />
3
cs_nuns Messages postés 87 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 23 juillet 2009
4 avril 2007 à 13:33
Merci pour vos réponse,


oui j'ai déjà pensé le faire en CVS. mais je pensais que c'était mieu de le
faire en XML.. mais je pense que je plus me prendre la que autre chose
bon je pense que je vais le faire comme ca.

Merci a toi lesdis ta methode me parait aussi cool, je vais la tester aussi,
0
Rejoignez-nous