从基于xml的关联数组中获取属性

时间:2012-06-07 18:32:10

标签: php 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()传递:

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

然后我尝试从root获取id属性并读取以这种方式执行:

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

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

var_dump($ root,$ data)输出

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

1 个答案:

答案 0 :(得分:0)

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

现在$ a将是:

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

所以你可以这样得到它们:

$a[0], $a[1]

很可能

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