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

Langage PHP Discussion :

Traiter un flux XML particulier [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Par défaut Traiter un flux XML particulier
    Bonjour,

    J'ai un soucis pour traiter un flux XML qui contient des balises "hors normes" (en tout cas j'en avais jamais traité ainsi).

    Exemple de flux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <store:PRODUCTLIST xmlns:store="http://www.*****/XML/schema" generation_timestamp="1285847838">
            <store:PRODUCT IDPRODUCT="465963" IDMETAPRODUCT="5669" ISONLINE="1" ISNEW="0"> 
    		<store:NAMESHORT>Cafetière SENSEO</store:NAMESHORT> 
    		<store:NAMELONG>Cafetière SENSEO Bleue + 2 tasses</store:NAMELONG> 
    		<store:PRICE CURRENCY="EUR">19.95</store:PRICE> 
    		<store:CATEGORIES> 
    			<store:CATEGORY IDPRODUCTTYPE="69">Electroménager</store:CATEGORY> 
    		</store:CATEGORIES> 
    	</store:PRODUCT> 
    </store:PRODUCTLIST>
    J'ai essayé avec SimpleXML, mais il est impossible de faire (à cause des ":") :
    Avec un bon moment de recherche sur google, j'ai essaye le xpath() :
    Code : 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
     
    $liste = simplexml_load_file('http://xml.*******'); 
     
    foreach ($liste->xpath('store:PRODUCT') as $produits) {	
     
      		echo "ID {".$produits['IDPRODUCT']."} <br />"; 
     
    		$nameshort = $produits->xpath('store:NAMESHORT');
    		echo "NOM {".$nameshort[0]."} <br />"; 
     
      			foreach ($produits->xpath('store:CATEGORIES') as $cats) { 				
    				foreach ($cats->xpath('store:CATEGORY') as $cat) { 
        				echo "Categorie : {".$cat->IDPRODUCTTYPE."} <br />";
    				}
        		} 
      	 echo '<hr/>';
    }
    Là tout fonctionne sauf la partie "categories". Il ne me sort rien :'(

    Quelqu'un a une solution svp ?

    Merci bien.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    http://www.php.net/manual/fr/simplex...hNamespace.php


    sinon pour ta catergorie c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "Categorie : {".$cat['IDPRODUCTTYPE']."} <br />";

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Par défaut
    Merci, je l'avais pas vu celle là

    Par contre, je n'ai pas compris comment le placer dans mon code.
    Est-ce ça, juste avant le premier foreach stp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $liste->registerXPathNamespace('store:CATEGORIES', 'http://www.*****/XML/schema');

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $liste->registerXPathNamespace('store', 'http://www.*****/XML/schema');

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 33
    Par défaut
    Merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XML] Importer des flux XML particuliers
    Par Pierrick81 dans le forum Bibliothèques et frameworks
    Réponses: 22
    Dernier message: 16/02/2011, 15h09
  2. [SOAP][C#]envoi d'un flux xml en SOAP
    Par prez dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 25/04/2005, 17h57
  3. [FLASH MX2004] Créer un flux xml
    Par j0hnmerrick dans le forum Flash
    Réponses: 3
    Dernier message: 23/02/2005, 12h02
  4. [XSL] Afficher un flux XML
    Par minimoi1234 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 18/02/2005, 09h35
  5. [DOM] Comment créer des flux XML en java ?
    Par nean_j dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 27/04/2004, 12h00

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