2016-09-03 16 views
2

アトリビュートをそれぞれrouteTitの下にエコーしようとしています。XMLアトリビュートの解析PHP

マイ出力:http://zxstudios.ca/api/test2.php

XML:http://webservices.nextbus.com/service/publicXMLFeed?command=predictions&a=ttc&stopId=1974

<?php 

$stopid="1974"; 
$urlbase = "http://webservices.nextbus.com/service/publicXMLFeed?command=predictions&a=ttc&stopId="; 
$url = $urlbase.$stopid; 

$xml = simplexml_load_file($url); 
$rt = $xml->predictions; 

foreach ($rt as $value) { 
    echo $value->attributes()->routeTitle."Min. <br>"; 
} 

echo $rt->direction->attributes()->minutes; 

?> 

ですから、例えば:

325-Don Mills 
3 Min. 
1 Min. 
185-Don Mills Rocket 
2 Min. 
1 Min. 
25-Don Mills 
2 Min. 
1 Min. 

更新質問:はどのように私は正しいノードにアクセスし、「警告を回避します: main():ノードはもう存在しません... "

+1

だからあなたの質問は何ですか? –

+0

申し訳ありません*私の質問は、正しいノードにアクセスして「警告:main():ノードはもう存在しません...」ということを回避する方法です。 – Zedkay22

答えて

0

あなたはrouteTitleの属性値をエコーし​​たい場合は、あなたのforeachループは次のようにする必要があります:

// your code 

foreach ($rt as $value) { 
    echo $value->attributes()->routeTitle . '<br />'; 
    if(isset($value->direction)){ 
     foreach($value->direction->prediction as $attr){ 
      foreach($attr->attributes() as $k => $v){ 
       if($k == 'minutes'){ 
        echo $v . ' minutes <br />'; 
       } 
      } 
     } 
    }else{ 
     echo "No direction. <br />"; 
    } 
}