2013-04-16 158 views
0

我使用SOAP API和我的生活我無法弄清楚如何解析並將其放入數組。我得到的迴應是:如何解析SOAP響應

<?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> 

我做得到這樣的結果:

$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); 

我知道這是不正確的做法,但它是我能得到迴應的唯一途徑。我一直在爲此工作好幾天。任何意見,將不勝感激。

這是我在這裏的第一篇文章,如果我沒有正確發佈,請耐心等待。

+0

看來我的XML文章沒有正確完成。這裏是:http://pastebin.com/UHku6nhn –

回答

0

我發現this post對我的幫助,當我前一段時間遇到類似的問題時。