Парсинг xml через DOM на php

Сломал голову, нужны умные мысли!

При парсинге xml в массив на php использую цепочку xml->dom->json->array. При этом, если дочерние элементы одинаковые, то они собираются в массив, а если различны - то в несколько массивов. Проблема в том, что мне нужно точно знать порядок элементов в xml. или сохранить его.

Xml имеет следующую структуру:

<m>
    <a>
        <p/>
        <r>7</r>
        <a>
            <d/>
            <r>2</r>
            <r>5</r>
        </a>
    </a>
    <i>p</i>
    <i>p</i>
    <r>3</r>
    <r>3</r>
    <i>p</i>
</m>

Хочу получить:

[0] => <a>(*?)</a>,
[1] => <i>p<i>,
и т.д.

Или:

<m>
   <a n="0">(*?)</a>
   <i n="1">p</i>
   и т.д.
</m>

Первое, что пришло в голову - добавить к каждому дочернему тегу атрибут с номером. Реализовать не удалось, пробовал через регулярные выражения. Второе - спарсить так, чтобы каждый элемент был элементом в нумерованном массиве, пробовал через все варианты парсинга, так не выходит.

Я php недавно, возможно кто-то сталкивался с этим, подскажите, пожалуйста.


Ответы (0 шт):