Jump to content

Import XML dans un tableau


Recommended Posts

bonjour, je tente sans résultats d importer, un fichier XML dans OOo
Mon fichier ce compose comme ceci et se reppette pour caque client (dans le même fichier, mais je n allais pas tout mettre ici ;))

- 
- 
- 
DI NIC***
Em***

016445****


ed********@wanadoo.fr
- 
6 CH TAILLIS GREFFIER

77780
BOURRON-MARLOTTE
France


- 
DI NIC***
Em***

016445****


ed*******@wanadoo.fr
- 
6 CH TAILLIS GREFFIER

77780
BOURRON-MARLOTTE
France


- 
Rue du Commerce
41458751
new
39.40
29/03/2010 14:47:49
- 
Colissimo
5.50

- 
Converse All Star Basse de couleur Bleu ( Pointure : 45 Couleur : Bleu Marine )


- 
carte




j aimerais pouvoir importer ces données ( n de commande; nom; prénom; adresse etc....) dans un tableau OOo qui me sert à imprimer mes bordereaux d envoi.
le fichier XML est celui de rue du commerce, peut être certain on déjà utiliser leurs services.

Merci pour vos réponses.

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

Je suis actuellement en train de travailler là-dessus, vous trouverez ci-dessous un bout de code permettant de récupérer les données du fichier xml.

<?php
require_once('DOM.inc.php');
$doc = new _DOMDocument();

$doc->load('rueducommercecommande.xml');

   $searchorders = $doc->getElementsByTagName( "orders" ); 
   foreach( $searchorders as $searchorders ) 
   { 
       $status = $searchorders->getAttribute('status');

       if ($status=='new'){
           $searchorder = $doc->getElementsByTagName( "order" ); 

           foreach( $searchorder as $searchorder ) 
           { 

               $morid = $searchorder->getAttribute('morid'); 

               $utilisateur = $searchorder->getElementsByTagName( "utilisateur" );

               foreach($utilisateur as $utilisateur)
               {
                   $type = $utilisateur->getAttribute('type');

                   if ($type=='facturation') {
                       $xmlnom = $utilisateur->getElementsByTagName( "nom" );
                       $nom_fact = $xmlnom->item(0)->nodeValue;
                       foreach( $xmlnom as $xmlnom ) 
                       { 
                           $titre = $xmlnom->getAttribute('titre');
                       }
                       switch ($titre){
                           case "M":
                           $gender='m';
                           break;
                           case "Mm":
                           $gender='f';
                           break;
                           case "Me":
                           $gender='f';
                           break;
                       }
                       $xmlprenom = $utilisateur->getElementsByTagName( "prenom" ); 
                       $prenom_fact = $xmlprenom->item(0)->nodeValue;
                       $xmlsociete = $utilisateur->getElementsByTagName( "societe" ); 
                       $societe_fact = $xmlsociete->item(0)->nodeValue;
                       $xmltelhome = $utilisateur->getElementsByTagName( "telhome" ); 
                       $telhome_fact = $xmltelhome->item(0)->nodeValue;
                       $xmlemail = $utilisateur->getElementsByTagName( "email" ); 
                       $email_fact = $xmlemail->item(0)->nodeValue;
                       $xmlrue1 = $utilisateur->getElementsByTagName( "rue1" ); 
                       $rue1_fact = $xmlrue1->item(0)->nodeValue;
                       $xmlrue2 = $utilisateur->getElementsByTagName( "rue2" ); 
                       $rue2_fact = $xmlrue2->item(0)->nodeValue;
                       $xmlcpostal = $utilisateur->getElementsByTagName( "cpostal" ); 
                       $cpostal_fact = $xmlcpostal->item(0)->nodeValue;
                       $xmlville = $utilisateur->getElementsByTagName( "ville" ); 
                       $ville_fact = $xmlville->item(0)->nodeValue;
                       $xmlpays = $utilisateur->getElementsByTagName( "pays" ); 
                       $pays_fact = $xmlpays->item(0)->nodeValue;
                   }elseif ($type=='livraison'){
                       $xmlnom = $utilisateur->getElementsByTagName( "nom" );
                       $nom_livr = $xmlnom->item(0)->nodeValue;
                       $xmlprenom = $utilisateur->getElementsByTagName( "prenom" ); 
                        $prenom_livr = $xmlprenom->item(0)->nodeValue;
                       $xmlsociete = $utilisateur->getElementsByTagName( "societe" ); 
                       $societe_livr = $xmlsociete->item(0)->nodeValue;
                       $xmltelhome = $utilisateur->getElementsByTagName( "telhome" ); 
                       $telhome_livr = $xmltelhome->item(0)->nodeValue;
                       $xmlemail = $utilisateur->getElementsByTagName( "email" ); 
                        $email_livr = $xmlemail->item(0)->nodeValue;
                       $xmlrue1 = $utilisateur->getElementsByTagName( "rue1" ); 
                       $rue1_livr = $xmlrue1->item(0)->nodeValue;
                       $xmlrue2 = $utilisateur->getElementsByTagName( "rue2" ); 
                       $rue2_livr = $xmlrue2->item(0)->nodeValue;
                       $xmlcpostal = $utilisateur->getElementsByTagName( "cpostal" ); 
                       $cpostal_livr = $xmlcpostal->item(0)->nodeValue;
                       $xmlville = $utilisateur->getElementsByTagName( "ville" ); 
                       $ville_livr = $xmlville->item(0)->nodeValue;
                       $xmlpays = $utilisateur->getElementsByTagName( "pays" ); 
                       $pays_livr = $xmlpays->item(0)->nodeValue;
                   } 
               }
               $xmlrefid = $searchorder->getElementsByTagName( "refid" ); 
               $refid = $xmlrefid->item(0)->nodeValue;
               $xmlmontant = $searchorder->getElementsByTagName( "montant" ); 
               $montant = $xmlmontant->item(0)->nodeValue;
               $transport = $searchorder->getElementsByTagName('transport')->item(0);
               $xmlfdp = $transport->getElementsByTagName('montant');
               $fdp = $xmlfdp->item(0)->nodeValue;

               $searchproduit = $searchorder->getElementsByTagName( "produit" ); 
               foreach( $searchproduit as $produit ) 
               { 
                   $qt = $produit->getAttribute('nb');
                   $product_id = $produit->getAttribute('merchantProductId');
                   $price = $produit->getAttribute('price');
               } 
           } 
       }
   }

?>



En espérant que cela puisse vous aider.

Link to comment
Share on other sites

Il faut utiliser la classe DOMDocument, appelé en début de code, suivant la version de votre php il est peut être nécessaire d'utiliser un fichier la contenant (voir ci-joint). Après on parcours le fichier xml de Rue de Commerce et on récupère les données dont on a besoin, si vous avez besoin d'autres données vous pouvez prendre exemple sur le code existant.

$searchorders = $doc->getElementsByTagName( "orders" ); 

=> recherche une balise

$status = $searchorders->getAttribute('status');

=> récupère l'attribut d'une balise

$xmlprenom = $utilisateur->getElementsByTagName( "prenom" ); 
                       $prenom_fact = $xmlprenom->item(0)->nodeValue;

=> récupère la valeur d'une balise

DOM.inc.php

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...