Я получаю доступ к SOAP-серверу через CURL (его единственный способ подключения PHP). Это ответ, который я получаю:Parse CURL SOAP response
<s:envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:header>
<a:action s:mustunderstand="1">PublicApi/IPropertyService/CreatePropertyResponse</a:action>
</s:header>
<s:body>
<createpropertyresponse xmlns="PublicApi">
<createpropertyresult xmlns:b="http://schemas.datacontract.org/2004/07/EfxFramework.PublicApi.Property" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<message xmlns="http://schemas.datacontract.org/2004/07/EfxFramework.PublicApi">Successfully completed the operation</message>
<result xmlns="http://schemas.datacontract.org/2004/07/EfxFramework.PublicApi">0</result>
<transactiondate xmlns="http://schemas.datacontract.org/2004/07/EfxFramework.PublicApi">2013-05-15T04:07:48.6565312Z</transactiondate>
<b:propertyid>55</b:propertyid>
</createpropertyresult>
</createpropertyresponse>
</s:body>
Я пытаюсь вытащить содержание:
<message xmlns="http://schemas.datacontract.org/2004/07/EfxFramework.PublicApi">Successfully completed the operation</message>
<result xmlns="http://schemas.datacontract.org/2004/07/EfxFramework.PublicApi">0</result>
<b:propertyid>55</b:propertyid>
Но я не могу понять, как разобрать его. Я пробовал «simplexml_load_string», который выдает кучу ошибок, таких как «предупреждение пространства имен: xmlns: URI PublicApi не является абсолютным»
Любые предложения?
Вы пробовали использовать стандартную клиентскую библиотеку мыла? ie Zend Soap Client http://framework.zend.com/manual/2.0/en/modules/zend.soap.client.html Примечание: вам не нужно использовать весь MVC, только эту библиотеку для мыльных дисков –
Если формат всегда почти такой же, preg_match() сделает это за вас. – Floris
Также есть ли мыльный сервер, отправляющий действительные ответы? Вы можете проверить с помощью SoapUI (скачать бесплатно) http://www.soapui.org –