[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как сделать рекурсию?
Страницы: 1, 2
Владимир55
Пытаюсь сделать разбор xml-файла, содержимое которого приведено ниже. Там есть раздел <Группы>, в котором содержатся 1 и более <Группа>. А в <Группа> могут быть вложены и другие подразделы: <Группы>.
Похоже, что без рекурсии не обойтись.

Одну строку я извлекаю так:

$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</Ид>
<Наименование>Вторая группа</Наименование>
<Описание></Описание>
</Группа>
</Группы>
</Классификатор>

<Каталог>
<Товары>

</Товары>
</Каталог>
</КоммерческаяИнформация>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.