Bonjour,

j'ai quelques soucis pour parser un fichier XML de cette forme

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
23
24
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <Action xmlns="www.blabla.fr/getdata">
         <Request>
            <Username>login</Username>
            <Password>motdepasse</Password>
            <Language>FR</Language>
            <Country>FR</Country>
            <ChargeReference></ChargeReference>
            <Operation>AddCompanies</Operation>
            <Portfolios>
               <Portfolio Id="111111">
                  <Entreprises>
                     <Entreprise>
                        <Siren>0000000000</Siren>
                     </Entreprise>
                  </Entreprises>
               </Portfolio>
            </Portfolios>
         </Request>
      </Action>
   </soap:Body>
</soap:Envelope>
Car j'obtiens une erreur du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Warning: simplexml_load_file(): /xml/request.xml:4:
 namespace warning : xmlns: URI www.blabla.fr/getdata is not 
absolute
En tentant de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$request = simplexml_load_file(dirname(__FILE__).'/xml/request.xml');
 
    echo '<pre>'.print_r($request,true).'</pre>'; exit;
Tandis qu'en donnant comme entrée le xml suivant :
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
<Request>
            <Username>login</Username>
            <Password>motdepasse</Password>
            <Language>FR</Language>
            <Country>FR</Country>
            <ChargeReference></ChargeReference>
            <Operation>AddCompanies</Operation>
            <Portfolios>
               <Portfolio Id="111111">
                  <Entreprises>
                     <Entreprise>
                        <Siren>0000000000</Siren>
                     </Entreprise>
                  </Entreprises>
               </Portfolio>
            </Portfolios>
         </Request>
Je n'ai aucun soucis, pour récupérer le xml sous forme de tableau.

Ma question est de savoir comment à partir du xml qui fonctionne, je peux intégrer les entetes pour obtenir le premier XML car j'ai ensuite besoin d'utilier SoapClient

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
$wsdl = "https://www.blabla.fr/GetData/test.asmx?WSDL";
    $client = new SoapClient($wsdl);
 
    //$reponse = $client->Action(urlencode($request));
    $reponse = $client->Action($request);
 
    return $reponse;