如何用PHP解析远程XML文件?

时间:2015-07-18 11:46:15

标签: php xml

我想解析以下XML file

到目前为止我所拥有的是:

$xml = new SimpleXMLElement('http://smarkets.s3.amazonaws.com/oddsfeed.xml', LIBXML_NOCDATA, true);

foreach ($xml->odds->event as $item) {
    echo (string)$item->market;
}

但这不起作用。你能救我吗?

2 个答案:

答案 0 :(得分:4)

您可以尝试使用php CURL

$ch = curl_init();
$url = 'http://smarkets.s3.amazonaws.com/oddsfeed.xml';

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');

$data = curl_exec($ch);
curl_close($ch);

$xml = simplexml_load_string($data);

print_r($xml);

答案 1 :(得分:4)

我不知道您要提取哪些信息,因此这里是一个如何从所有市场节点获取属性“id”和“slug”的示例。

只需将compress.zlib://添加到您的网址即可获取xml,适用于PHP 4.3.0及更高版本

<?php
$xml = simplexml_load_file('compress.zlib://http://smarkets.s3.amazonaws.com/oddsfeed.xml') or die("Error: Cannot create object");

foreach ($xml->event as $item) {
    echo $item->market['id'] . "<br>" . $item->market['slug'] . "<br><br>";
}
?>