Я пытался получить SOAP-запрос для работы в пользовательском модуле для Drupal 7. Я использую cURL для выполнения запроса внутри функции.На данный момент страница, которую я использую, говорит нам о поддержке сайта, когда я активирую функцию.Ниже приведен фрагмент функции.У меня вопрос, как я могу получить значение электронной почты, предоставленной ответом SOAP, и поместить его в переменную PHP?Ниже мой вариант использования SimpleXML.
$xml = simplexml_load_string($response); $namespace = 'http://exacttarget.com/wsdl/partnerAPI'; $soap = $xml->children($namespace); $subscriber_email = $soap->Body->RetrieveResponseMsg->Results->Properties->Property[2]->Value;
Это результат запроса SOAP сам по себе с использованием интерфейса SOAP, который я пытаюсь проанализировать:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <soap:Header> <wsa:Action>RetrieveResponse</wsa:Action> <wsa:MessageID>[REMOVED]</wsa:MessageID> <wsa:RelatesTo>[REMOVED]</wsa:RelatesTo> <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To> <wsse:Security> <wsu:Timestamp wsu:Id="Timestamp-715a4a7e-4657-48c7-8b01-612580d331ce"> <wsu:Created>2019-03-04T12:41:08Z</wsu:Created> <wsu:Expires>2019-03-04T12:46:08Z</wsu:Expires> </wsu:Timestamp> </wsse:Security> </soap:Header> <soap:Body> <RetrieveResponseMsg xmlns="http://exacttarget.com/wsdl/partnerAPI"> <OverallStatus>OK</OverallStatus> <RequestID>[REMOVED]</RequestID> <Results xsi:type="DataExtensionObject"> <PartnerKey xsi:nil="true"/> <ObjectID xsi:nil="true"/> <Type>DataExtensionObject</Type> <Properties> <Property> <Name>SubscriberID</Name> <Value>[REMOVED]</Value> </Property> <Property> <Name>FirstName</Name> <Value>[REMOVED]</Value> </Property> <Property> <Name>Email</Name> <Value>[REMOVED]</Value> </Property> </Properties> </Results> </RetrieveResponseMsg> </soap:Body> </soap:Envelope>