我正在尝试使用这样的simplexml在http://smarkets.s3.amazonaws.com/oddsfeed.xml解析xml提要:
$xml = simplexml_load_file('http://smarkets.s3.amazonaws.com/oddsfeed.xml');
但收到错误 - 期望开始标记,'<'没找到。
我认为这是因为xml格式不正确?
有谁知道如何在php中解析它。
由于
答案 0 :(得分:3)
我建议您使用cURL加载URL的内容,然后解析该内容。
$curl = curl_init();
curl_setopt_array($curl, Array(
CURLOPT_URL => 'http://smarkets.s3.amazonaws.com/oddsfeed.xml',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_ENCODING => 'UTF-8'
));
$data = curl_exec($curl);
curl_close($curl);
$xml = simplexml_load_string($data);
通过这种方式,您可以准确地看到SimpleXML正在解析的内容。对于其他调试,您可以在解析实际XML之前添加以下行(取自PHP网站http://php.net/manual/en/simplexml.examples-errors.php):
libxml_use_internal_errors(true);
$sxe = simplexml_load_string($data);
if ($sxe === false) {
echo "Failed loading XML\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
}