在同一执行中调用两次SimpleXML失败

时间:2012-03-03 05:11:09

标签: php simplexml

我正在尝试为移动应用程序编写API。我想以XML格式返回数据。我正在使用为Wolfram Alpha构建的PHP库来查询他们的数据,并希望我的API充当移动应用程序和Wolfram Alpha之间的关系。每当我在使用Wolfram Alpha PHP库后尝试打印XML文档时,我都会收到来自Chrome的错误说明:

error on line 7 at column 6: XML declaration allowed only at the start of the document

我在IE中什么都没得到,在Firefox中我得到了:

XML Parsing Error: XML or text declaration not at start of entity
Location: http://myfitnessplate.com/api/food-search/name/thisissomethingnotfood/key/HWGCF-YASLT-HOSEC-OZWJH-HETKJ
Line Number 7, Column 1:
<?xml version="1.0"?>
^

没有其他数据。我打开了Wolfram Alpha PHP库(WolframAlphaEngine.php)的主文件,发现它使用SimpleXML在以下代码中查询Wolfram Alpha

$xml = simplexml_load_file( $url );

每当我使用该库时,我都会收到XML错误。如果我不使用该库,XML输出就好了。 “simplexml_load_file”是否可能导致我的XML因某种原因而中断?

我的代码在使用使用simplexml_load_file的库时不起作用(这在不使用库时确实有效):

$xml = new SimpleXMLElement('<xml/>');
header("Content-Type:text/xml");
echo $xml->asXML();

1 个答案:

答案 0 :(得分:1)

我强烈怀疑在回显XML之前,有七行输出。你需要静音这个输出,因为它导致你的xml变得无效,这导致你的浏览器变得疯狂。

可能是来自您所包含的库的错误消息。可能在你的php文件中有前导或尾随空格。唯一知道的方法是在浏览器开始解析之前查看原始输出。

相关问题