Wednesday, May 9, 2018

XML to Array in php

Input:
<list version="1.0">

<meta>

<type>resource-list</type>
</meta>

<resources start="0" count="188">

<resource classname="Quote">

<field name="name">USD/KRW</field>

<field name="price">1080.800049</field>

<field name="symbol">KRW=X</field>

<field name="ts">1525856454</field>

<field name="type">currency</field>

<field name="utctime">2018-05-09T09:00:54+0000</field>

<field name="volume">0</field>
</resource>
</resources>
</list>


Code:

<?php
$request_url = "https://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote";
//Setup cURL Request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $request_url);
curl_setopt($curl, CURLOPT_TIMEOUT, 130);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
curl_close($curl);
$xml = simplexml_load_string(trim($response), "SimpleXMLElement", LIBXML_NOCDATA );
$data = json_decode( json_encode( $xml ), true );
$result = array();
foreach ($xml->resources->resource as $element) {
foreach(json_decode( json_encode( $element ), true ) as $key => $val) {
$result[]=$val;
}
}
print_r($result);
?>

Output:

Array
(
    [0] => Array
        (
            [classname] => Quote
        )

    [1] => Array
        (
            [0] => USD/KRW
            [1] => 1080.800049
            [2] => KRW=X
            [3] => 1525859664
            [4] => currency
            [5] => 2018-05-09T09:54:24+0000
            [6] => 0
        )
)

0 comments:

Post a Comment