将xml数据转换为数组


convert xml data to array

我正在尝试解析XML文件中的所有货币值。我想从XML文件中获取此数组。:

Array
(
    [USD] => 1.0501
    [RUB] => 0.0165
    [TRY] => 0.4244
)

但我得到了这个:

Array
(
    [USD] => SimpleXMLElement Object
        (
            [0] => 1.0501
        )
    [RUB] => SimpleXMLElement Object
        (
            [0] => 0.0165
        )
    [TRY] => SimpleXMLElement Object
        (
            [0] => 0.4244
        )
)

这是我的php代码:

<?php
@header('Content-Type: text/html; charset=utf-8;');
$date = date ("d.m.Y");
$cur_arr = array("TRY", "RUB", "USD");
$url = simplexml_load_file("http://cbar.az/currencies/" .$date.".xml");
foreach($url->ValType[1]->Valute as $key=>$value){
    $attr = $value->attributes();
    if(in_array($attr["Code"],$cur_arr)){
        $data[''.$attr["Code"].''] = $value->Value[0];
    }
}
print_r($data);
?>

我想得到一个像第一个例子一样的数组。我尝试了很多代码,但结果是SimpleXMLElement对象。我怎样才能像第一个例子一样得到它?

在值之前添加(array)作为

  foreach($url->ValType[1]->Valute as $key=>$value){
    $attr = $value->attributes();
    if(in_array($attr["Code"],$cur_arr)){
        $value = (array)$value->Value;
        $data[''.$attr["Code"].''] = $value[0];
    }
}

这将返回

array(3) {
  ["USD"]=>
  string(6) "1.0501"
  ["RUB"]=>
  string(6) "0.0165"
  ["TRY"]=>
  string(6) "0.4244"
}