Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> SoapClient Request XML, Odczyt atrybutu
oepd
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.06.2010

Ostrzeżenie: (0%)
-----


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.




--------------------
człowiek uczy się całe życie...
Go to the top of the page
+Quote Post
buliq
post
Post #2





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


pozostaje parsowanie xml,
albo możesz regexp'em wyłapać


--------------------
KTOŚ TU PACZY???

Kompedium wiedzy
Go to the top of the page
+Quote Post
oepd
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.06.2010

Ostrzeżenie: (0%)
-----


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?


--------------------
człowiek uczy się całe życie...
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Po prostu obsłuż poprawnie przestrzenie nazw: https://www.google.com/search?q=php+xml+nam...me&ie=UTF-8
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 09:51