2012-01-25 49 views
2
<?php 

$url='http://bart.gov/dev/eta/bart_eta.xml'; 

$c = curl_init($url); 

curl_setopt($c, CURLOPT_MUTE, 1); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 

$rawXML = curl_exec($c); 

curl_close($c); 

$fixedupXML = htmlspecialchars($rawXML); 

foreach($fixedupXML->eta-> as $eta) { 
    echo $eta->destination; 
} 

?> 

作爲一種引入PHP的方式,我決定解析BART的XML提要並將其顯示在我的網頁上。我管理(也通過此站點)能夠獲取數據並保留XML標記。但是,當我嘗試輸出XML數據時,使用我發現的最簡單的方法,沒有任何反應。解析PHP中的XML提要

foreach($fixedupXML->eta as $eta){ 
    echo $eta->destination; 
} 

我沒有在foreach循環中獲得嵌套元素嗎?

這是BART XML訂閱源http://www.bart.gov/dev/eta/bart_eta.xml 謝謝!

+0

這是什麼意思:'$ fixedupXML-> eta->'?它似乎有一個額外的' - >'或我錯過了什麼? –

+0

啊,修正了錯字 –

回答

7

你可能想看看simplexml,這是一種非常簡單並且非常簡單的使用XML的方式。 這裏有一個很好的例子:

$xml = simplexml_load_file('http://bart.gov/dev/eta/bart_eta.xml'); 

然後你可以運行在$xml一個print_r看到它的內容:

print_r($xml); 

而且你應該能夠從那裏:)

與它合作如果您仍然需要使用curl來獲取Feed數據,您可以將XML作爲simplexml提供,如下所示:

$xml = simplexml_load_string($rawXML); 
+1

謝謝,這個作品! –