2011-07-01 6 views
1

Comment passer ce fichier XML en tableau à utiliser dans la fonction soap. commeComment analyser du code XML imbriqué dans un tableau imbriqué?

$res=$client->OTA_HotelDestinationsRQ($myarray); 

<OTA_HotelDestinationsRQ Version="1.0"> 
     <POS> 
     <Source> 
      <UniqueId Id="username:password" />   
     </Source> 
     </POS> 
     <DestinationInformation LanguageCode="EN" /> 
</OTA_HotelDestinationsRQ> 
+0

pourquoi vous devez avoir dans un tableau? Quel est le problème avec l'utilisation des hiérarchies d'arborescence offertes par DOM ou SimpleXml? Et laquelle des [questions existantes demandant la même chose] (http://stackoverflow.com/search?q=xml+to+array+php) avez-vous cherché? – Gordon

+0

je veux passer tableau comme une demande de savon – Hearaman

+0

j'ai reçu une réponse lorsque j'utilise le code comme $ res = $ client -> _ appel ("OTA_HotelDestinationsRQ", tableau ($ xml)); comment transmettre un tableau de données dans cette fonction OTA_HotelDestinationsRQ – Hearaman

Répondre

0

Vous pouvez utiliser le code comme ceci:

function process(DOMNode $node){ 
    // Special handling for character data 
    if($node instanceof DOMCharacterData){ 
     return $node->data; 
    } 

    // Has only text inside: 
    if(($node->childNodes->length == 1) && ($node->childNodes->item(0)->nodeName == '#text') && ($node->childNodes->item(0) instanceof DOMCharacterData)){ 
     return $node->childNodes->item(0)->data; 
    } 

    // Get all attributes 
    $result = array(); 
    foreach($node->attributes as $item){ 
     $result[ $item->name] = $item->value; 
    } 

    // Go trough all child nodes 
    foreach($node->childNodes as $sub){ 
     $result[$sub->nodeName] = process($sub); 
    } 

    return $result; 
} 

Et le résultat:

Array 
(
    [Version] => 1.0 
    [POS] => Array 
     (
      [Source] => Array 
       (
        [UniqueId] => Array 
         (
          [Id] => username:password 
         ) 

       ) 

     ) 

    [DestinationInformation] => Array 
     (
      [LanguageCode] => EN 
     ) 

    [text] => text 
) 

liens utiles Documentation: