2015-02-24 134 views
0

我想解析XML文件中的所有货币值。我想从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对象。我如何能像第一个例子那样得到它?

+0

没有奏效:(。 – 2015-02-24 20:51:58

回答

0

值之前添加(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" 
} 
+0

是否加工 ' 阵列 ( [USD] =>数组 ( [ 0] => 1.0501 ) [RUB] =>阵列 ( [0] => 0.0165 ) [TRY] =>阵列 ( [0] => 0.4244 ) ) ' – 2015-02-24 20:56:17

+0

修改我的答案检查,请 – 2015-02-24 20:58:04

+0

,你需要什么?让我知道? – 2015-02-24 21:01:30