用PHP解析XML feed

Ama*_*nda 2 php xml curl

<?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 谢谢!

Fra*_*wis 7

您可能需要查看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)