【发布时间】:2011-06-21 20:26:28
【问题描述】:
我想将 xml 脚本转换为 PHP 中的关联数组。 XML 脚本是:
<ages>
<Peter>
<Peterchild>4</Peterchild>
<Peterchild>6</Peterchild>
</Peter>
<Quagmire>30</Quagmire>
<Joe>34</Joe>
</ages>
我编写的将其转换为数组的代码是
${$xml->getName()} = array();
foreach($xml->children() as $child){
$ages[$child->getName()] = (string)$child;
}
输出为
Array
(
[Peter] =>
[Quagmire] => 30
[Joe] => 34
)
问题是我无法找出递归遍历 children 的孩子(本例中为 Peter 的孩子)的条件。如何更改此代码以同时考虑这些节点?
【问题讨论】:
-
你说了神奇的词,递归......递归。在当前使用方法 children() 的情况下,您需要应用递归函数来向下钻取并获取所需的值。或者您应该调查是否有另一种方法可以将整个 xml 转换为一个数组或数组数组(如果需要)。
-
查看此页面上的 2 个示例:php.net/manual/en/class.simplexmliterator.php,两者都可以满足您的需求。
-
@Zyava 谢谢,它有帮助
标签: php xml arrays simplexml associative-array