2009-08-27 6 views
3

Also ich versuche, das folgende XML in meiner SOAP-Anforderung enthalten:Geben eines PHP-Array in einer SOAP-Aufruf

<Responses> 
    <Response> 
     <QuestionAnswerID>someint</QuestionAnswerID> 
     <QuestionID>someint</QuestionID> 
    </Response> 
    <Response> 
     <QuestionAnswerID>someint</QuestionAnswerID> 
     <QuestionID>someint</QuestionID> 
    </Response> 
</Responses> 

ich this Posting sah, die vage auf das gleiche Thema, aber es erzeugt eine Ausgabe so wie:

object(stdClass)#1 (1) { 
    ["Responses"]=> 
    object(stdClass)#2 (1) { 
     ["Response"]=> 
     array(2) { 
      [0]=> 
      object(stdClass)#3 (2) { 
       ["QuestionAnswerID"]=> 
       int(someint) 
       ["QuestionID"]=> 
       int(someint) 
      } 
      [1]=> 
      object(stdClass)#4 (2) { 
       ["QuestionAnswerID"]=> 
       int(someint) 
       ["SurveyQuestionID"]=> 
       int(someint) 
      } 
     } 
    } 
} 

das Problem dabei ist, dass die Arrays jetzt Indizes, die der Web-Service, den ich angezeigt werde Aufruf nicht mögen. Irgendwie kann ich etwas wie das obige XML erzeugen?

TIA.

+0

Jemand hat gerade diese .. http://meta.stackexchange.com/questions/686/... auf einem meiner Fragen gepostet;) –

+0

glücklich? :-) sorry ... – benjy

+0

Danke .. Ich hatte das nicht getan. Ich schätze, ich fange jetzt an. –

Antwort

9

Es ist schwierig, dies ohne einen SOAP-Server mit Ihrer WSDL gegen zu testen. Sie sollten wie so assoziativen Arrays erstellen können:

$responses = array(); 
$responses[] = array("QuestionAnswerID" => someint, "QuestionID" => someint); 
$responses[] = array("QuestionAnswerID" => someint, "QuestionID" => someint); 

$response = array("Response" => $responses); 

$soapData = array("Responses" => $response); 
Verwandte Themen