2012-06-07 46 views
0

我有一个返回关联数组的xml解析器。这里的结构:从基于xml的关联数组获取属性

<addresses id="123"> 
    <anonymous-address> <test>data 1 </test> 
    </anonymous-address> 
</addresses> 

print_r($this->params) will return 
Array 
(
    [addresses] => Array 
     (
      [id] => 123 
      [anonymous-address] => Array 
       (
        [0] => Array 
         (        
          [test] => Array 
           (
            [VALUE] => data 1 
           ))))) 

这个数组,然后获得通过名单(通过)为:

list($root, $data) = $parsedXML; 

然后我尝试从根的id属性和读取做这样:

$id = $data[$root]['id']; 

编辑:这适用于所有,但它只有一个$ 400的根值。这种交换机($ root)的情况与其他交换机的代码相同,所以我不知道为什么它只在那里出错。

的var_dump($根,$数据)输出

string (9) "addresses" 
array(1) { 
    ["addresses"]=> 
    array(2) { 
     ["id"]=> 
     string(3) "123" 
     ["anonymous-address"]=> 
     array(1) { 
      ["VALUE"]=> 
      string(7) "data 1 " 
     } 
    } 
} 
+0

var_dump($ root); var_dump($ data)打印? – Gavriel

+0

你还没有发布var_dumps。相信我,当你看到输出时,你会发现问题 – Gavriel

+0

我编辑了我的问题,以更真实地反映我的问题所在的xml结构,并添加了var_dumps。 –

回答

0
$a = list($root, $data); 

现在美元将是:

array(0 => $root, 1 => $data); 

这样你就可以让他们像这样:

$a[0], $a[1] 

所以可能

$id = $a[1][$a[0]]['id']; 
+0

对不起,本意是编辑我的问题,而不是评论。意外击中输入按钮。请参阅我上面的编辑。 –