2016-09-19 4 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

ありがとうございました。私の問題を解決しました。 – Chris