Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SoapClient Request XML
Forum PHP.pl > Forum > XML, AJAX
oepd
Witam serdecznie.

Piszę klienta do webserwisu korzystając z biblioteki SoapClient.

W odpowiedzi na moje zapytanie dostaję pusty obiekt:

  1. object(stdClass)#8 (0) {
  2. }


Ten obiekt ma atrybut, który mnie interesuje, ale nie potrafię się do niego dostać. Poniżej XML, który dostaję wywołując __getLastResponse():

  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  3. <S:Body><ns2:UpdateDefectResponse xmlns:ns2="http://www.XYZ.com.pl/wsdl/defect" result="UPDATED"/></S:Body>
  4. </S:Envelope>


Interesuje mnie parametr result=UPDATED. Czy jest jakiś sposób na odczytanie tego atrybutu na poziomie biblioteki soap, czy pozostaje jedynie jakieś parsowanie tego XMLa?

Dziękuję za pomoc.


buliq
pozostaje parsowanie xml,
albo możesz regexp'em wyłapać
oepd
Wyrażeniami regularnymi osiągnę cel, ale może da się to zrobić lepiej. Uworzyłem zmienną, zawierającą tego xmla. Próbowałem parsować simplexml_load_string(), ale zwraca mi pusty obiekt. Dopiero po ręcznym usunięciu przedrostków "S:" oraz "ns2:" zwraca obiekt:

  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  3. <Body><UpdateDefectResponse xmlns:ns2="http://www.XYZ.com.pl/wsdl/defect" result="UPDATED"/></Body>
  4. </Envelope>

  1. object(SimpleXMLElement)#2 (1) {
  2. ["Body"]=>
  3. object(SimpleXMLElement)#4 (1) {
  4. ["UpdateDefectResponse"]=>
  5. object(SimpleXMLElement)#7 (1) {
  6. ["@attributes"]=>
  7. array(1) {
  8. ["result"]=>
  9. string(7) "UPDATED"
  10. }
  11. }
  12. }
  13. }
  14.  


Jak to zrobić, aby bez zamiany tych przedrostków (str_replace) utworzyć obiekt z XMLa?
Crozin
Po prostu obsłuż poprawnie przestrzenie nazw: https://www.google.com/search?q=php+xml+nam...me&ie=UTF-8
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.