Znalazłem liczne wyjaśnienia dotyczące sposobu SoapClient spodziewa się ustawić atrybutów w żądaniu, ale ja po prostu nie może znaleźć sposób na przeczytać atrybuty z odpowiedzią.PHP SoapClient i odczyt atrybutów
Na przykład, mój SoapClient odpowiedź ma te elementy w nim:
...
<ns:index>
<ns:uid expdate="2013-09-03 14:30:00">JOWtest002</ns:uid>
<ns:uid expdate="2013-02-07 15:00:00">JOWtest003</ns:uid>
</ns:index>
...
Jednak "expdate" atrybut nie jest dołączony do "indeksu" stdClass
["index"]=>
object(stdClass)#80 (1) {
["uid"]=>
array(2) {
[0]=>
string(10) "JOWtest002"
[1]=>
string(10) "JOWtest003"
}
}
Próbowałem, używając mapa klasy SoapClient, aby powiązać to z obiektem, ale niestety, WSDL nie definiuje elementu "uid" jako complexType, więc nie mapuje atrybutów. Wiązanie "indeksu" z klasą nie działa.
Wszelkie sugestie? Naprawdę chcę uniknąć analizowania XML przez podanie SimpleXML lub DOMDocument.
Czy korzystanie z przestrzeni nazw byłoby pomocne? http://stackoverflow.com/q/8525020/1513471 –
Dziękuję. Czy możesz wyjaśnić, dlaczego przestrzeń nazw byłaby problemem? WSDL definiuje zwykłe przestrzenie nazw pakowania SOAP i używamy innej przestrzeni nazw niż zadeklarowano w moim przykładzie tutaj. – voodoodrul
Ponieważ przestrzeń nazw wskazuje na atrybuty xml, dlatego sugeruję przestrzeń nazw. –