2012-09-03 27 views
2

我正在使用PHP 5并尝试从使用cURL的网页获取货币汇率。致命错误:未收到异常'异常'消息'字符串不能被解析为XML'

要检索我所说的内容:

$html = curl_exec($ch); 

这正确显示页面。然而,当我尝试使用它格式化为XML:显示有结束

$xml = new SimpleXMLElement($html);

多次警告“致命错误:未捕获的异常‘异常’有消息‘字符串不能被解析为XML’”

我用stripslashes($html)和关闭magic_qoutes ...

请帮我找到一个解决方案,我一直停留在这个问题上,过去2天。

另请注意,页面中嵌入了JavaScript。是否这是不允许创建XML的JavaScript?

谢谢

+0

问题是:你的目标是什么? afaik SimpleXML类需要有效的结构。既然你得到这些错误,我可以想象该网站是无效的。你已经检查过了吗?你怎么能有你的XML在JS? – androidavid

+0

谢谢你的时间。我的目标是从货币兑换网站提取数据,这是目标...... 该网站是'http://www.thecurrencyclub.co.uk/currency-exchange-rates-all-band.do'和它看起来很好格式... 就JS而言,即时通讯新的卷曲,所以我想知道,如果这个JS不允许创建XML。 PS JS不是必需的 –

+0

我不知道任何有关性能损失,你可以得到,但继承人一个简单的DOM解析,我使用http://simplehtmldom.sourceforge.net/manual.htm 对于大多数事情,这是更容易处理。无论如何:对于复杂的XML作品,您应该尝试继续使用SimpleXML – androidavid

回答

3

如果你wan't读取XML数据请遵循这些步骤,

$ XMLURL = “你的XML URL /文件名到这里”;

try { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $xmlURL); 
    curl_setopt($ch, CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     'Content-type: text/xml' 
    )); 
    $content = curl_exec($ch); 
    $error = curl_error($ch); 
    curl_close($ch); 
    $obj = new SimpleXMLElement($content); 
    echo "<pre>"; 
    var_dump($obj); 
    echo "</pre>"; 
} 
catch(Exception $e){ 
    var_dump($e);exit; 
} 

您将获得整个xml文件的阵列合成器。

谢谢。

相关问题