Hallo Community,
ich kämpfe momentan mit der PHP Soap Implementierung.
Ich versuche auf ein von Spring zur Verfügung gestelltes Webservice zuzugreifen, wobei die parameter manchmal über Attribute des XML-Tags übergeben werden.
Ein gültiger Request würde wie folgt aussehen:
Einen Parameter in den CustomFieldIds Tag zu scrheiben ist nicht das Problem. Mein Problem beginnt dort wo es um die containerId geht, die als Attribut übergeben wird.
Wenn ich jetzt sowas code:
kommt als Resultat folgendes:
Ich hab viele Beispiele im Netz gefunden mit einer "_"-Notation, aber ich muss was im Code falsch machen denn das klappt ja offensichtlich nicht.
Weiß jemand von euch wie das funktionert.
Danke im Vorhinein
Thomas
ich kämpfe momentan mit der PHP Soap Implementierung.
Ich versuche auf ein von Spring zur Verfügung gestelltes Webservice zuzugreifen, wobei die parameter manchmal über Attribute des XML-Tags übergeben werden.
Ein gültiger Request würde wie folgt aussehen:
Code:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:con="http://mynamespace"> <soapenv:Header/> <soapenv:Body> <con:GetContainerRequest containerId="2"> <!--Optional:--> <con:CustomFieldIds> <!--Zero or more repetitions:--> <con:CustomFieldId>1</con:CustomFieldId> </con:CustomFieldIds> </con:GetContainerRequest> </soapenv:Body> </soapenv:Envelope>
Wenn ich jetzt sowas code:
Code:
$obj = new stdClass; $obj->containerId['_'] = "containerId"; $obj->containerId['containerId'] = $containerId; if($customFieldIds!= null) { $cfIds = new stdClass; foreach($customFieldIds as $cfId) { $contIds->CustomFieldId[] = new SoapVar($cfId, XSD_STRING, null, null, null, SoapApi::$containerServiceNs); } $obj->CustomFieldIds = new SoapVar($cfIds, SOAP_ENC_OBJECT); } $soapstruct = new SoapVar($obj, SOAP_ENC_OBJECT); return $this->clientForContainerService->GetContainer(new SoapParam($soapstruct, "inputStruct"));
Code:
<SOAP-ENV:Body> <ns1:GetContainerRequest> <containerId> <item> <key>_</key> <value>containerId</value> </item> <item> <key>containerId</key> <value>104</value> </item> </containerId> </ns1:GetContainerRequest> </SOAP-ENV:Body>
Weiß jemand von euch wie das funktionert.
Danke im Vorhinein
Thomas
Kommentar