Похоже, что без рекурсии не обойтись.
Одну строку я извлекаю так:
$xml = simplexml_load_file("import.xml");
if ($xml) {
foreach ($xml->Классификатор->Группы[0] as $item) {
echo (string) $item->Наименование[0], '[', (string) $item->Ид[0], '] ', "\n";
}
}
А как сделать рекурсию, чтобы извлечь пары ИД-Наимеование с информацией о том, какая группа в какую вложена?
<?xml version="1.0" encoding="utf-8"?>
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="2012-12-20T21:41:34"><Классификатор>
<Группы>
<Группа>
<Ид>F6FF40B4-556F-E943-DCAF-0BCE308FEBEF</Ид>
<Наименование>Первая группа</Наименование>
<Описание></Описание>
<Группы>
<Группа>
<Ид>CDC01E36-BE83-B77F-93C7-7D3C4BF709ED</Ид>
<Наименование>Овощи</Наименование>
<Описание></Описание>
</Группа>
</Группы>
<Группы>
<Группа>
<Ид>7645A435-77DD-B2C6-421B-63A178DDB760</Ид>
<Наименование>Фрукты</Наименование>
<Описание></Описание>
<Группы>
<Группа>
<Ид>A183F863-22F9-4410-B4AF-5BCF1EB8CBB9</Ид>
<Наименование>Африканские</Наименование>
<Описание></Описание>
<Группы>
<Группа>
<Ид>427D57BD-862C-0A88-EDC2-FED3B9CE77D2</Ид>
<Наименование>Национальные</Наименование>
<Описание></Описание>
</Группа>
</Группы>
</Группа>
</Группы>
</Группа>
</Группы>
</Группа>
</Группы>
<Группы>
<Группа>
<Ид>A9678AEC-859C-0FE4-51A3-DFE0B7F251C3</Ид>
<Наименование>Вторая группа</Наименование>
<Описание></Описание>
</Группа>
</Группы>
</Классификатор>
<Каталог>
<Товары>
</Товары>
</Каталог>
</КоммерческаяИнформация>