将XML转换为数组,无法处理节点内部的节点

| 我想将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
)
问题是我无法找出条件来递归遍历孩子的孩子(在此示例中为彼得的孩子)。如何更改此代码以同时考虑这些节点?     
已邀请:
        您将需要创建一个解析一个级别的函数,然后在找到当前级别内的节点时调用该函数本身。它非常复杂,可能会变得凌乱。出于好奇,当您可以使用SimpleXML对象以对象格式访问所需的所有信息时,为什么要这样做?     
        
${$xml->getName()} = array();
    foreach($xml->children() as $child) 
    {
      if (count($child->children() > 0) 
      {
         foreach ($child->children as $childnode)
         {
           $ages[$childnode->getName()] = (string)$childnode;
         }
      }
      else {
          $ages[$child->getName()] = (string)$child;
      }
   }
仅当深度为1级时,此功能才有效;如果要扩展至更高的级别,则应编写一个函数,该函数将逐级循环进行。     

要回复问题请先登录注册