簡體   English   中英

使用curl解析XML API

[英]Parse XML api using curl

我正在嘗試使用以下代碼中使用的api URL解析xml數據。 當我直接在瀏覽器中運行此url時,它為我提供了xml格式的數據,如下所示。

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>B4DE627B9936548B</RequestId>
<HostId>LyB4mVbYLYF/a26Wn04sSuMlTwQjLozl11O9Ql2YbMwHgenXRUCd7WAn5QPRa6nj</HostId>
</Error>

但是我想要這個xml數組,然后我將使用foreach循環對該數組進行迭代。

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不用於粘貼數據。 您必須為此使用一些圖書館。 對於您的情況,我建議使用SimpleXML 例:

$xml = simplexml_load_string($query);
var_dump($xml);

然后,您可以使用標准數組索引訪問各種屬性:

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

要將XML轉換為數組,正如alexn已經建議的那樣 ,您可以使用simplexml_load_string並將其返回值轉換為數組:

$array = (array) simplexml_load_string($query);
print_r($array);

那給你:

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

這可能正是您要尋找的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM