【问题标题】:Parsing XML feed in PHP在 PHP 中解析 XML 提要
【发布时间】:2012-02-18 06:30:14
【问题描述】:
<?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 数据时,什么也没有发生。

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

我没有在 foreach 循环中获得嵌套元素吗?

这是 BART XML 提要http://www.bart.gov/dev/eta/bart_eta.xml 谢谢!

【问题讨论】:

  • 这是什么意思:$fixedupXML-&gt;eta-&gt; ?似乎还有一个额外的-&gt; 或者我错过了什么?

标签: php xml curl


【解决方案1】:

您可能想查看simplexml,这是一种使用 XML 的绝妙且非常简单的方法。 这是一个很好的例子:

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

然后你可以在$xml 上运行print_r 来查看它的内容:

print_r($xml);

你应该可以从那里开始使用它:)

如果由于某种原因您仍需要使用 curl 获取提要数据,您可以将 XML 输入到 simplexml 中,如下所示:

$xml = simplexml_load_string($rawXML);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多