Я хочу преобразовать xml-скрипт в ассоциативный массив в PHP. Сценарий XML является:преобразование 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() вам необходимо применить рекурсивную функцию для детализации и получения требуемых значений. Это или вы должны исследовать, есть ли другой метод просто превратить весь xml в массив или массив массивов, если это необходимо. – FinalForm
См. 2 примера на этой странице: http://php.net/manual/en/class.simplexmliterator.php, оба делают то, что вам нужно. – Zyava
@ Zyava спасибо, это помогло – rkt