Php 使用curl解析xmlapi

Php 使用curl解析xmlapi,php,xml,curl,Php,Xml,Curl,我正在尝试使用api url解析xml数据,我在下面的代码中使用了api url。当我直接在浏览器中运行这个url时,它会给我一个xml格式的数据,如下所示 <Error> <Code>AccessDenied</Code> <Message>Access Denied</Message> <RequestId>B4DE627B9936548B</RequestId> <HostId>LyB4mVbY

我正在尝试使用api url解析xml数据,我在下面的代码中使用了api url。当我直接在浏览器中运行这个url时,它会给我一个xml格式的数据,如下所示

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>B4DE627B9936548B</RequestId>
<HostId>LyB4mVbYLYF/a26Wn04sSuMlTwQjLozl11O9Ql2YbMwHgenXRUCd7WAn5QPRa6nj</HostId>
</Error>
但是我希望这个xml在一个数组中,然后我将使用foreach循环对该数组进行itrate。
curl_setopt($ch, CURLOPT_URL,'http://mybucket.s3.amazonaws.com  
/11111.mpg&mpaction=convert%20format=flv');

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_USERAGENT, 'Your application name');

$query = curl_exec($ch);

curl_close($ch);

echo $query;

?>

当我打印变量$query时,它只提供xml文本。我希望这个xml在一个数组中。请帮助我,

CURL不用于pasing数据。你得去图书馆看看。对于您的情况,我建议使用。例如:

$xml = simplexml_load_string($query);
var_dump($xml);
然后,可以使用标准数组索引访问各种属性:

echo $xml['Message']; // Yields "Access Denied"

要将XML转换为数组,如所示,可以使用它的返回值并将其强制转换为数组:

$array = (array) simplexml_load_string($query);
print_r($array);
这给了你:

Array
(
    [Code] => AccessDenied
    [Message] => Access Denied
    [RequestId] => B4DE627B9936548B
    [HostId] => LyB4mVbYLYF/a26Wn04sSuMlTwQjLozl11O9Ql2YbMwHgenXRUCd7WAn5QPRa6nj
)

这可能正是你想要的。

@rajzana只要用我的代码替换你的
echo$query
,你就会看到。