如何解决这个simplexml_load_file问题

时间:2012-10-13 00:43:13

标签: php xml

我正在尝试使用simplexml_load_file将xml转换为xml对象。但是,我收到了一个错误

PHP Warning: simplexml_load_file() expects parameter 1 to be string, array given in  ....... line 50

我正在尝试使用的xml文件....

http://api.wolframalpha.com/v1/query.jsp?appid=GJUJH5-8RJR4ELL82&input=pi

$response  = the file above..

$xml = simplexml_load_file($response);

不知道该怎么做。谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

使用以下内容对我有用:

$raw = "http://api.wolframalpha.com/v1/query.jsp?appid=GJUJH5-8RJR4ELL82&input=pi";
$xml = simplexml_load_file($raw);

echo '<pre>';
print_r($xml);
echo '</pre>';

从那里你可以(并给出$xml),根据你的需要访问任何元素/属性:

foreach ($xml->pod as $pod)
{
    echo $pod->attributes()->title.'<br>';
}

哪个回声:

Input
Decimal approximation
Property
Number line
Continued fraction
Alternative representations
Series representations
Integral representations

希望这有帮助。

答案 1 :(得分:1)

$fileContents = file_get_contents("./stuff.xml");
$stringXml = simplexml_load_string($fileContents);

$remoteXml = simplexml_load_file("http://api.wolframalpha.com/v1/query.jsp?appid=GJUJH5-8RJR4ELL82&input=pi");
$localXml = simplexml_load_file("./stuff.xml");

像这样使用它。首先是将解析的内容加载到字符串,然后使用simplexml_load_string进行转换。

后两个示例表明您可以从本地或远程源访问它,但函数simplexml_load_file需要文件位置作为源。