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 fichier SOAP


Sujet :

XML/XSL et SOAP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2012
    Messages : 48
    Points : 29
    Points
    29
    Par défaut Parser fichier SOAP
    Bonjour,

    Je me tourne vers vous car je n'avance pas, marrant c'est ce que l'on fait en général....

    J'ai un fichier XML soap que je récupère via une API.

    Je traite normalement des ficiers XML sans problème mais certaines balises me paraissent étrange et me bloquent lol

    Voici le fichier
    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
    21
     
    <?php
    $soap_response = '<?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://phpave.com/api/">
    	<soapenv:Body>
    		<ns3:WS_SiVin_Consulter_VehiculeResponse xmlns:ns3="http://aaa.asso.fr/sivin/schemas">
    			<ns3:return>
    				<ns1:carrosserie xmlns:ns1="http://aaa.asso.fr/sivin/xsd">BERLINE</ns1:carrosserie>
    				<s125:carrosserieCG xmlns:s125="http://aaa.asso.fr/sivin/xsd">CI</s125:carrosserieCG>s125:carrosserieCG xmlns:s125="http://aaa.asso.fr/sivin/xsd">CI</s125:carrosserieCG>
    				<s126:co2 xmlns:s126="http://aaa.asso.fr/sivin/xsd">152</s126:co2>
    				<ns1:codeMoteur xmlns:ns1="http://aaa.asso.fr/sivin/xsd">KFU</ns1:codeMoteur>
    				<dateDCG xmlns="http://aaa.asso.fr/sivin/xsd">
    				<jour>---19</jour>
    				<mois>--02--</mois>
    				<annee>2013</annee></dateDCG>
    				<ns1:depollution xmlns:ns1="http://aaa.asso.fr/sivin/xsd">NON</ns1:depollution>
    			</ns3:return>
    		</ns3:WS_SiVin_Consulter_VehiculeResponse>
    	</soapenv:Body>
    </soapenv:Envelope>';
    ?>
    Le problème c'est que les champs changent de nom à chaque appel lol

    <s125:carrosserieCG xmlns:s125="http://aaa.asso.fr/sivin/xsd">CI</s125:carrosserieCG> peut de venir <n148:carrosserieCG n148="http://aaa.asso.fr/sivin/xsd">CI</n148:carrosserieCG>

    Comment récupérer dans ce cas carrosserieCG si le nom change ?

    Merci de votre aide

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Comment récupérer dans ce cas carrosserieCG si le nom change ?
    Chaque instance d'xml est speciale, d'où le x (extensible). Il n'y a pas de raison que les "parseurs" reconnus dans l'industrie soient bornés de quelque manière que ce soit par une rigidité de cette façon, dit le nom des balises. Qu'est-ce que la téchnologie vous vous en occupez ? Et comment vous traitez "normalement" les fichiers xml ?
    Je traite normalement des ficiers XML sans problème mais certaines balises me paraissent étrange et me bloquent lol

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    Du point de vue de XML, le nom ne change pas : c'est toujours l'élément <carrosserieCG> qui se trouve dans le namespace http://aaa.asso.fr/sivin/xsd . Le préfixe n'a pas d'importance, qu'il change ou non le résultat est le même.

    Du coup ce qu'il faut chercher dans le document c'est l'élément <carrosserieCG> qui se trouve dans le namespace http://aaa.asso.fr/sivin/xsd . Il ne faut pas parler du préfixe.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2012
    Messages : 48
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    Merci pour vos retours.

    J'ai avancé de mon côté et j'ai trouvé une solution au plus simple en utilisant XML reader.

    Voici mon code : léger et efficace
    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
    21
    22
     
    <?php
     
    $reader = new XMLReader();
    $reader->open("$n_immat.xml");
     
    $champ_to_add = "";
    $tab = array();
     
    while($reader->read())
    {
    	if($reader->nodeType != XMLReader::END_ELEMENT) 
    	{
    		$element_en_cours = $reader->name; 
    		list($pre,$element_en_cours) = explode(":",$element_en_cours);  // L'élément pré change constamment, seul l'element en cours ne change pas et m'intéresse
    		if(!empty($element_en_cours)) { $champ_to_add = $element_en_cours; }
     
    		$value = $reader->value;
    		if(!empty($value)) { $tab["$champ_to_add"] = $value; }
    	}
    }
    ?>
    Merci

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Sinon il y avait localName au lieu de name, mais bon...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [DOM] Erreur parser fichier xml avec caractère spéciaux
    Par turcotm dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 19/06/2006, 09h01
  2. parser fichier texte pour avoir un doc html !!
    Par avogadro dans le forum Débuter
    Réponses: 4
    Dernier message: 30/03/2006, 16h12
  3. [XML] [EXPAT] Parser fichier XML
    Par Ben42 dans le forum Bibliothèques et frameworks
    Réponses: 12
    Dernier message: 17/02/2006, 14h08
  4. [XSL] Parser fichier xml : erreurs + incompréhensions
    Par totobouchon dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 19/07/2005, 15h47
  5. Fichier SOAP
    Par alaie dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 21/05/2003, 15h05

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