2016-09-19 1 views
1

원격 xml 파일에서 다음 출력 (ktg = 001 인 경우)을 에코하려고합니다. 사전에 어떤 도움 감사PHP SimpleXML echo

내가 에코 싶습니다

출력 :

<aaa id="AA" epg="AA" ktg="001"> 
<Name>john</Name> 
<Customer id="0001"> 
    <Name>name2</Name> 
    <Dfr>0</Dfr> 
    <Date>09/19/2016 13:20:00</Date> 
    <ktopt>No</ktopt> 
    <SOS type="BB" id="0002"> 
     <age name="df1">22</age> 
     <age name="df2">44</age> 
    </SOS> 
</Customer> 
<Customer id="0002"> 
    <Name>name3</Name> 
    <Dfr>0</Dfr> 
    <Date>09/20/2016 06:20:00</Date> 
    <Ktopt>No</Ktopt> 
    <SOS type="CC" id="0004"> 
    <age name="df1">55</age> 
    <age name="df2">65</age> 
    </SOS> 
</Customer> 
</aaa> 

PHP 내 예 :

<?php 

$url = 'http://remotexmllocationonforexample'; 
$obj = simplexml_load_file($url); 
    foreach ($obj->aaa as $aaa) { 
    if ($aaa['ktg'] == '001') {  
    echo $aaa->Customer->Name ; 
    echo ' <br />'; 
    echo $aaa->Customer->SOS ; 
    } 
} 
?> 
원격 URL에있는

name2 
22 44 

name3 
55 65 

XML 파일을

+0

귀하의 xml은 유효하지 않습니다. 가 닫히지 않았습니다. 태그는 닫는 태그 – user1915746

+0

을 가지고 있습니다. (잘못 클릭). 내 문제에 대한 제안이 있습니까? – Chris

답변

0

다음 코드를 사용해보십시오.

$url = 'http://remotexmllocationonforexample'; 
$obj = simplexml_load_file($url); 

foreach ($xml as $aaa) { 
    $attr = $aaa->attributes(); 
    if($attr['ktg']=='001') { 
     $xmlData = get_object_vars($aaa); 
     foreach($xmlData['Customer'] as $cust) { 
      $custDetais = get_object_vars($cust); 
      echo "Name: ".$custDetais['Name'].PHP_EOL; 
      foreach($custDetais['SOS'] as $sos) { 
       echo $sos[0]."\t"; 
      } 
     } 
    } 
} 
+0

감사합니다. ur 답변이 내 문제를 해결했습니다. – Chris