我想将下面的XML转换为PHP数组.有关如何做到这一点的任何建议?
<aaaa Version="1.0">
<bbb>
<cccc>
<dddd Id="id:pass" />
<eeee name="hearaman" age="24" />
</cccc>
</bbb>
</aaaa>
Run Code Online (Sandbox Code Playgroud) 到目前为止,我一直在使用下面的代码片段将XML树转换为数组:
$a = json_decode(json_encode((array) simplexml_load_string($xml)),1);
Run Code Online (Sandbox Code Playgroud)
..但是,我现在正在使用具有重复键值的XML,因此当它循环遍历XML时,数组就会中断.例如:
<users>
<user>x</user>
<user>y</user>
<user>z</user>
</users>
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来执行此操作以允许重复键,或者可能是一种在每个键吐出数组时为每个键添加递增值的方法,如下所示:
$array = array(
users => array(
user_1 => x,
user_2 => y,
user_3 => z
)
)
Run Code Online (Sandbox Code Playgroud)
我很难过,所以任何帮助都会非常感激.
该SimpleXMLElement::__construct()方法和相关的功能simplexml_load_string()和simplexml_load_file()所有有一个可选的对有关XML Namepspaces参数:$ns和$is_prefix.
尽管我可以看到那些与XML命名空间有关,但我想知道它们是什么以及它们是如何工作的.