2013-04-16 2 views
0

SOAP API로 작업하고 광산에서이 구문을 분석하여 배열에 저장하는 방법을 알 수 없습니다. 내가 얻을 응답은 다음과 같습니다SOAP 응답을 구문 분석하는 방법

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

나는 그것이 올바른 방법이 아니다 알고 있지만 그것이 내가 응답을 얻을 수 있었던 유일한 방법입니다 :

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

나는 수행하여이 결과를 얻을. 나는이 일을 며칠 동안 해왔다. 어떤 조언을 주시면 감사하겠습니다.

여기는 내 첫 번째 게시물이므로 제대로 게시하지 않으면 나와 함께 곰.

+0

XML 게시물이 올바르게 작성되지 않은 것으로 보입니다. 여기 있습니다 : http://pastebin.com/UHku6nhn –

답변

0

내가 비슷한 문제에 직면했을 때 나는 this post의 도움을 얻었다.

관련 문제