Discussion: Parser fichier SOAP

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2012
    Messages : 47
    Points : 27
    Points
    27

    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 chevronné
    Inscrit en
    octobre 2011
    Messages
    1 071
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 071
    Points : 1 853
    Points
    1 853

    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
    11 206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 11 206
    Points : 18 959
    Points
    18 959

    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
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2012
    Messages : 47
    Points : 27
    Points
    27

    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
    11 206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 11 206
    Points : 18 959
    Points
    18 959

    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 XML
    Réponses: 4
    Dernier message: 19/06/2006, 09h01
  2. parser fichier texte pour avoir un doc html !!
    Par avogadro dans le forum Débutant
    Réponses: 4
    Dernier message: 30/03/2006, 16h12
  3. [EXPAT] Parser fichier XML
    Par Ben42 dans le forum XML
    Réponses: 12
    Dernier message: 17/02/2006, 14h08
  4. [XSL] parser fichier xml : erreurs + incompréhensions
    Par totobouchon dans le forum XSL & XSLT
    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