[英]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.