Я пытаюсь повторить атрибут минут под каждым типом routeTitle .
Мой результат: 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 (): Узел больше не существует …»?
Если вы хотите пересчитать значения атрибутов минут для каждого маршрута , то ваш цикл 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 />"; } }