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

XML/XSL et SOAP Discussion :

Parser un flux XML


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 52
    Par défaut Parser un flux XML
    Bonjour,

    J’ai un souci pour extraire les données d’un flux xml que je reçois :

    Pour exemple et pour simplifier, voici un fichier de structure identique (mais allégé ici)

    Je reçois donc ceci.

    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
    18
    19
    20
     
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <soap:Body>
       <ListCarsResponse xmlns="http://blablabla.com/webservices/">
        <ListCarsResult>
         <CAR_list xmlns="http://blablabla.com/webservices/CAR_list.xsd">
          <Product ProductId="13956" provider="MySelf" name="Peugeot" type="106">
           <ColorType productId="13956;19630" name="Black">
           </ColorType>
          </Product>
          <Product ProductId="22568" provider="MySelf" name="Peugeot" type="406">
           <ColorType productId="22568;24575" name="Red">
           </ColorType>
          </Product>
         </CAR_list>
        </ListCarsResult>
       </ListCarsResponse>
     </soap:Body>
    </soap:Envelope>
    si je simplifie mon fichier comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0" encoding="utf-8"?>
         <CAR_list xmlns="http://blablabla.com/webservices/CAR_list.xsd">
          <Product ProductId="13956" provider="MySelf" name="Peugeot" type="106">
           <ColorType productId="13956;19630" name="Black">
           </ColorType>
          </Product>
          <Product ProductId="22568" provider="MySelf" name="Peugeot" type="406">
           <ColorType productId="22568;24575" name="Red">
           </ColorType>
          </Product>
         </CAR_list>
    alors avec quelques « foreach », je récupere ce que je veux ..



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $Product = $xml->xpath('//Product');
    foreach ($xml as $Product) {
    echo $Product['ProductId']."<BR>";
    echo $Product['name']."<BR>";
    echo $Product['type']."<BR>";
    	foreach ($Product as $ColorType) {
    	echo $ColorType['productId']."<BR>";
    	echo $ColorType['name']."<BR>";
    	}
    }
    Mais comment faire face à la structure que je reçois ?
    A cause notamment des « : » dans le tag de « Body » ou celui d’ « Envelop » je n’arrive pas a exprimer mon xpath.

    Quelqu’un a-t-il une solution ??

    Merci d’avance

    Paulux1

  2. #2
    Membre éclairé Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <soap:Body>
    ce qui précède les ':' correspond à un namespace qui ici est soap... msi à part ça je vois pas trop quelle est la question !

Discussions similaires

  1. Parser un flux XML (type fichier de log) en java
    Par zorglubpok dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 28/09/2009, 18h24
  2. [SimpleXML] Parser un flux xml avec SimpleXMLElement
    Par DeezerD dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 22/11/2006, 18h07
  3. [C#] Comment parser un flux XML ?
    Par Dunkan dans le forum C#
    Réponses: 1
    Dernier message: 22/09/2006, 13h32
  4. parser un flux xml provenant d'une anim flash
    Par pyd001 dans le forum Langage
    Réponses: 3
    Dernier message: 11/07/2006, 10h43

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