2012-01-25 20 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フィードを解析し、それを自分のWebページに表示することに決めました。私はデータをフェッチして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'); 

その後、あなたはそれは中身だ参照してください$xmlprint_rを実行することができます:

print_r($xml); 

そして、あなたはそこからそれに取り組むことができるはずです:)

何らかの理由でcurlを使用してフィードデータを取得する必要がある場合は、次のようにXMLをsimplexmlにフィードできます。

$xml = simplexml_load_string($rawXML); 
+1

ありがとう、これは動作します! –