2017-04-15 5 views
0

를 simplexml_load_string 사용하면 데이터 누락 : 나는 $a을 표시 할 때이 같은 PHP에서 <code>simplexml_load_string</code>를 사용할 때 나는()

$response = '<?xml version="1.0" encoding="UTF-8"?> 
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="http://epp.nic.ir/ns/domain-1.0"> 
    <response xmlns:domain="http://epp.nic.ir/ns/domain-1.0"> 
     <result code="1000"> 
      <msg>Command completed successfully</msg> 
     </result> 
     <resData xmlns:domain="http://epp.nic.ir/ns/domain-1.0"> 
      <domain:chkData xmlns:domain="http://epp.nic.ir/ns/domain-1.0"> 
       <domain:cd> 
        <domain:name normalized_name="dsfdsfdsfsdfdffdg" 
           canonized_name="dsfdsfdsfsdfdffdg" tld="ir" avail="1"> 
         dsfdsfdsfsdfdffdg.ir 
        </domain:name> 
       </domain:cd> 
      </domain:chkData> 
     </resData> 
     <trID> 
      <clTRID>TEST-14922533391168726112</clTRID> 
      <svTRID>IRNIC_2017-04-15T15:18:59+04:30_epi</svTRID> 
     </trID> 
    </response> 
</epp>'; 
$a = simplexml_load_string($response); 
var_dump($a); 

내가 더 resData 가치가 없다, 나는이 속성이 없습니다. 어떻게 해결할 수 있습니까?

+1

그것은 네임 스페이스의 문제입니다. 여기보세요 - https://eval.in/776816 몇 가지 첫 번째 단계를 작성했습니다 – splash58

+0

값을 얻으려면 네임 스페이스를 등록하고 Xpath를 사용할 수 있습니다. – splash58

답변

0

감사합니다. @ splash58.
나는이 같은 네임 스페이스을 사용해야합니다

$a = simplexml_load_string($result); 
$ns = $a->getNamespaces(true); 
var_dump($a->response->resData->children($ns['domain'])); 
0

틀린 변수 $response을 사용했으나 초기화되지 않았습니다. $result을 사용하여 $response 대신에 전체 html 문자열을 사용하십시오.

시도해보십시오. Code demo

<?php 
$result = '<?xml version="1.0" encoding="UTF-8"?> 
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="http://epp.nic.ir/ns/domain-1.0"> 
    <response xmlns:domain="http://epp.nic.ir/ns/domain-1.0"> 
     <result code="1000"> 
      <msg>Command completed successfully</msg> 
     </result> 
     <resData xmlns:domain="http://epp.nic.ir/ns/domain-1.0"> 
      <domain:chkData xmlns:domain="http://epp.nic.ir/ns/domain-1.0"> 
       <domain:cd> 
        <domain:name normalized_name="dsfdsfdsfsdfdffdg" 
           canonized_name="dsfdsfdsfsdfdffdg" tld="ir" avail="1"> 
         dsfdsfdsfsdfdffdg.ir 
        </domain:name> 
       </domain:cd> 
      </domain:chkData> 
     </resData> 
     <trID> 
      <clTRID>TEST-14922533391168726112</clTRID> 
      <svTRID>IRNIC_2017-04-15T15:18:59+04:30_epi</svTRID> 
     </trID> 
    </response> 
</epp>'; 
$a = simplexml_load_string($result); 
var_dump($a);