<?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;
}
?>
Run Code Online (Sandbox Code Playgroud)
作为介绍PHP的一种方式,我决定解析BART的XML feed并将其显示在我的网页上.我管理(也通过这个网站)能够获取数据并保留XML标记.但是,当我尝试输出XML数据时,使用我发现的最简单的方法,没有任何反应.
foreach($fixedupXML->eta as $eta){
echo $eta->destination;
}
Run Code Online (Sandbox Code Playgroud)
我没有在foreach循环中获得嵌套元素吗?
这是BART XML提要http://www.bart.gov/dev/eta/bart_eta.xml 谢谢!
您可能需要查看simplexml,这是使用XML的一种非常简单的方法.这是一个很好的例子:
$xml = simplexml_load_file('http://bart.gov/dev/eta/bart_eta.xml');
Run Code Online (Sandbox Code Playgroud)
然后,你可以在运行print_r上$xml看到它的内容:
print_r($xml);
Run Code Online (Sandbox Code Playgroud)
你应该能够从那里使用它:)
如果由于某种原因仍需要使用curl来获取feed数据,可以将XML提供给simplexml,如下所示:
$xml = simplexml_load_string($rawXML);
Run Code Online (Sandbox Code Playgroud)