runk
Новичок
SOAP and SimpleXml and namespaces
Как следует из документации к стандартному SOAP клиент\серверу, сервер не имеет никакого доступа к части <Header></Header> SOAP запроса. Было бы удобнее слать логин и прочую авторизационную инфу именно в нем. Значит выход только распарсить raw post data и взять из запроса что нужно. Не могу понять почему SimpleXml не может работать в пространствами имен, как в этом примере, просто пустой класс получается, без какой либо инфы:
Вывод:
SimpleXMLElement Object
(
)
В чем дело, что тут не так?
-~{}~ 11.10.06 23:47:
Вопрос снят.
Как следует из документации к стандартному SOAP клиент\серверу, сервер не имеет никакого доступа к части <Header></Header> SOAP запроса. Было бы удобнее слать логин и прочую авторизационную инфу именно в нем. Значит выход только распарсить raw post data и взять из запроса что нужно. Не могу понять почему SimpleXml не может работать в пространствами имен, как в этом примере, просто пустой класс получается, без какой либо инфы:
PHP:
print_r(new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ns1="http://xml.apache.org/xml-soap"
xmlns:ns2="http://soapinterop.org/echoheader/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<ns2:echoMeStringRequest>hello world</ns2:echoMeStringRequest>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<SOAP-ENV:getLookupCountries>
<asAssoc xsi:nil="true"/>
</SOAP-ENV:getLookupCountries>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>'));
SimpleXMLElement Object
(
)
В чем дело, что тут не так?
-~{}~ 11.10.06 23:47:
Вопрос снят.
PHP:
<?php
$text = $xml->xpath('/SOAP-ENV:Envelope/SOAP-ENV:Header/ns2:echoMeStringRequest')
?>