0

I work with a SOAP API and for the life of mine I can not figure out how to parse this and put it in to an array. The response that I get is:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <get_machinesResponse xmlns="http://127.0.0.1/Integrics/Enswitch/API">
      <s-gensym3>
        <quorum_pris xsi:type="xsd:string">1</quorum_pris>
        <description xsi:type="xsd:string" />
        <sip_port xsi:type="xsd:string">5060</sip_port>
        <domain xsi:type="xsd:string">mypbxmanager.net</domain>
        <asterisk_alive xsi:type="xsd:string">1</asterisk_alive>
        <id xsi:type="xsd:string">11</id>
        <server xsi:type="xsd:string">cleveland</server>
        <asterisk xsi:type="xsd:string">1</asterisk>
        <ipaddr xsi:type="xsd:string">10.10.10.32</ipaddr>
      </s-gensym3>
      <s-gensym5>
        <quorum_pris xsi:type="xsd:string">1</quorum_pris>
        <description xsi:type="xsd:string" />
        <sip_port xsi:type="xsd:string">5060</sip_port>
        <domain xsi:type="xsd:string">mypbxmanager.net</domain>
        <asterisk_alive xsi:type="xsd:string">1</asterisk_alive>
        <id xsi:type="xsd:string">13</id>
        <server xsi:type="xsd:string">ernie</server>
        <asterisk xsi:type="xsd:string">1</asterisk>
        <ipaddr xsi:type="xsd:string">10.10.10.34</ipaddr>
      </s-gensym5>
      <s-gensym7>
        <quorum_pris xsi:type="xsd:string">1</quorum_pris>
        <description xsi:type="xsd:string" />
        <sip_port xsi:type="xsd:string">5060</sip_port>
        <domain xsi:type="xsd:string">mypbxmanager.net</domain>
        <asterisk_alive xsi:type="xsd:string">-1</asterisk_alive>
        <id xsi:type="xsd:string">5</id>
        <server xsi:type="xsd:string">lois</server>
        <asterisk xsi:type="xsd:string">0</asterisk>
        <ipaddr xsi:type="xsd:string">10.10.10.12</ipaddr>
      </s-gensym7>
      <s-gensym9>
        <quorum_pris xsi:type="xsd:string">1</quorum_pris>
        <description xsi:type="xsd:string" />
        <sip_port xsi:type="xsd:string">5060</sip_port>
        <domain xsi:type="xsd:string">mypbxmanager.net</domain>
        <asterisk_alive xsi:type="xsd:string">-1</asterisk_alive>
        <id xsi:type="xsd:string">15</id>
        <server xsi:type="xsd:string">mort</server>
        <asterisk xsi:type="xsd:string">0</asterisk>
        <ipaddr xsi:type="xsd:string">10.10.10.24</ipaddr>
      </s-gensym9>
      <s-gensym11>
        <quorum_pris xsi:type="xsd:string">1</quorum_pris>
        <description xsi:type="xsd:string" />
        <sip_port xsi:type="xsd:string">5060</sip_port>
        <domain xsi:type="xsd:string">mypbxmanager.net</domain>
        <asterisk_alive xsi:type="xsd:string">-1</asterisk_alive>
        <id xsi:type="xsd:string">14</id>
        <server xsi:type="xsd:string">muriel</server>
        <asterisk xsi:type="xsd:string">0</asterisk>
        <ipaddr xsi:type="xsd:string">10.10.10.25</ipaddr>
      </s-gensym11>
      <s-gensym13>
        <quorum_pris xsi:type="xsd:string">1</quorum_pris>
        <description xsi:type="xsd:string" />
        <sip_port xsi:type="xsd:string">5060</sip_port>
        <domain xsi:type="xsd:string">mypbxmanager.net</domain>
        <asterisk_alive xsi:type="xsd:string">-1</asterisk_alive>
        <id xsi:type="xsd:string">9</id>
        <server xsi:type="xsd:string">nyc-02</server>
        <asterisk xsi:type="xsd:string">0</asterisk>
        <ipaddr xsi:type="xsd:string">10.10.10.10</ipaddr>
      </s-gensym13>
      <s-gensym15>
        <quorum_pris xsi:type="xsd:string">1</quorum_pris>
        <description xsi:type="xsd:string" />
        <sip_port xsi:type="xsd:string">5060</sip_port>
        <domain xsi:type="xsd:string">mypbxmanager.net</domain>
        <asterisk_alive xsi:type="xsd:string">1</asterisk_alive>
        <id xsi:type="xsd:string">12</id>
        <server xsi:type="xsd:string">ollie</server>
        <asterisk xsi:type="xsd:string">1</asterisk>
        <ipaddr xsi:type="xsd:string">10.10.10.33</ipaddr>
      </s-gensym15>
      <s-gensym17>
        <quorum_pris xsi:type="xsd:string">1</quorum_pris>
        <description xsi:type="xsd:string" />
        <sip_port xsi:type="xsd:string">5060</sip_port>
        <domain xsi:type="xsd:string">mypbxmanager.net</domain>
        <asterisk_alive xsi:type="xsd:string">-1</asterisk_alive>
        <id xsi:type="xsd:string">4</id>
        <server xsi:type="xsd:string">peter</server>
        <asterisk xsi:type="xsd:string">0</asterisk>
        <ipaddr xsi:type="xsd:string">10.10.10.11</ipaddr>
      </s-gensym17>
      <s-gensym19>
        <quorum_pris xsi:type="xsd:string">1</quorum_pris>
        <description xsi:type="xsd:string" />
        <sip_port xsi:type="xsd:string">5060</sip_port>
        <domain xsi:type="xsd:string">mypbxmanager.net</domain>
        <asterisk_alive xsi:type="xsd:string">-1</asterisk_alive>
        <id xsi:type="xsd:string">8</id>
        <server xsi:type="xsd:string">stewie</server>
        <asterisk xsi:type="xsd:string">0</asterisk>
        <ipaddr xsi:type="xsd:string">10.10.10.13</ipaddr>
      </s-gensym19>
    </get_machinesResponse>
  </soap:Body>
</soap:Envelope>

I get this result by doing:

$foo = new SoapClient("my_3.6.wsdl", array('proxy_host'     => "mydomain.net",
                                            'proxy_port'     => 80,
                                                'trace' => 1));

$result = $foo->get_machines('username', 'password');

$xml = $foo->__getLastResponse();

print_r($xml);

I know it is not the right way but it is the only way I was able to get the response. I have been working on this for days. Any advice would be appreciated.

This is my first post on here so bear with me if I did not post correctly.

Jonathan Kuhn
  • 15,279
  • 3
  • 32
  • 43
Dovid Bender
  • 139
  • 9

1 Answers1

0

I found this post of help to me when I faced a similar problem some time ago.

Community
  • 1
  • 1
FastGeek
  • 411
  • 2
  • 7