Доброго всем дня)
Есть задача, думаю с какой стороны к ней подойти. Может что почитать посоветуете или примеры посмотреть подскажите.
Задача:
* Обработать xml файл.
* Сгенерировать дерево в виде выпадающих списков ().
* В результате должно получится : пошаговый выбор значения из списка на каждом уровне вложености.
* Т е нужно пройти от выбора разрешения(это толщина пленки) до выбора значений пост обработки
* На первом шаге выбор разрешения, после выбора появляется вып список с вариантами материалов для данного разрешения,
* Выбираем материал - появляются относящиеся к нему варианты PostProcessing (все доступные для данного материала)
* и варианты выбора значения для каждого из PostProcessing. Т е выбор PostProcessingValue доступен после выбора материала и сгруппирован по PostProcessing
Т.е. насколько я понимаю должна быть форма типа select при наводке на которую еще одна выпадающая менюшка возникала. Я думаю надо использлвать php c библиотекой SimpleXML или DOM, xml надо обработать xlst. надо ли использовать тут javascript, или можно без него? сильно похожего не нагуглил, разве что
https://habrahabr.ru/post/65077/
Вот начало хml файла (он длиннющий, но однотипный):
<?xml version ="1.0" encoding ="utf-8"?>
<Catalog>
<Scripts>
<Script>
<ScriptID>99b7e76f-b4f8-4e8a-839d-6c4c4a8f28fc</ScriptID>
<ScriptName>C/к Пленка</ScriptName>
<Resolutions>
<Resolution>
<ResolutionID>8c064d58-12a4-48df-8360-ba711a38ee98</ResolutionID>
<ResolutionName>400 dpi</ResolutionName>
<Materials>
<Material>
<MaterialID>
f145fea2-c550-49b4-98cb-468804eb517f
</MaterialID>
<MaterialName>
Пленка Белая глянцевая NAR
</MaterialName>
<MaterialDescription>
Описание пленки
</MaterialDescription>
<PostProcessings>
<PostProcessing>
<PostProcessingID>368b9ae4-b07e-4465-854a-02ddf8841b5f</PostProcessingID>
<PostProcessingName>Ламинирование...</PostProcessingName>
<PostProcessingDescription>Описание</PostProcessingDescription>
<PostProcessingValues>
<PostProcessingValue>
<PostProcessingValueID>e51310ad-7a5b-423a-b3de-a1945f04584f</PostProcessingValueID>
<PostProcessingValueName>Белая глянцевая OraJet</PostProcessingValueName>
</PostProcessingValue>
<PostProcessingValue>
<PostProcessingValueID>333decb8-d216-4d86-9806-415622b6c352</PostProcessingValueID>
<PostProcessingValueName>Белая глянцевая OraJet (удаляемый клей)</PostProcessingValueName>
</PostProcessingValue>
</PostProcessingValues>
</PostProcessing>
<PostProcessing>
<PostProcessingID>b733c91b-6e92-4b66-8e54-1d36d2d942bd</PostProcessingID>
<PostProcessingName>Упаковка</PostProcessingName>
<PostProcessingDescription>Описание</PostProcessingDescription>
<PostProcessingValues>
<PostProcessingValue>
<PostProcessingValueID>3cc78589-8071-473c-83f5-388ffa2cbfaa</PostProcessingValueID>
<PostProcessingValueName>брикетом</PostProcessingValueName>
</PostProcessingValue>
<PostProcessingValue>
<PostProcessingValueID>2377959d-be97-4bec-9892-cc683dc267b3</PostProcessingValueID>
<PostProcessingValueName>Белая глянцевая OraJet (удаляемый клей)</PostProcessingValueName>
</PostProcessingValue>
<PostProcessingValue>
<PostProcessingValueID>2377959d-be97-4bec-9892-cc683dc267b3</PostProcessingValueID>
<PostProcessingValueName>в рулон</PostProcessingValueName>
</PostProcessingValue>
</PostProcessingValues>
</PostProcessing>
</PostProcessings>
</Material>
<Material>
<MaterialID>
e51310ad-7a5b-423a-b3de-a1945f04584f
</MaterialID>
<MaterialName>
Белая глянцевая OraJet
</MaterialName>
<MaterialDescription>
Описание пленки
</MaterialDescription>
<PostProcessings>
<PostProcessing>
<PostProcessingID>368b9ae4-b07e-4465-854a-02ddf8841b5f</PostProcessingID>
<PostProcessingName>Ламинирование...</PostProcessingName>
<PostProcessingDescription>Описание</PostProcessingDescription>
<PostProcessingValues>
<PostProcessingValue>
<PostProcessingValueID>e51310ad-7a5b-423a-b3de-a1945f04584f</PostProcessingValueID>
<PostProcessingValueName>Белая глянцевая OraJet</PostProcessingValueName>
</PostProcessingValue>
<PostProcessingValue>
<PostProcessingValueID>333decb8-d216-4d86-9806-415622b6c352</PostProcessingValueID>
<PostProcessingValueName>Белая глянцевая OraJet (удаляемый клей)</PostProcessingValueName>
</PostProcessingValue>
</PostProcessingValues>
</PostProcessing>
<PostProcessing>
<PostProcessingID>b733c91b-6e92-4b66-8e54-1d36d2d942bd</PostProcessingID>
<PostProcessingName>Упаковка</PostProcessingName>
<PostProcessingDescription>Описание</PostProcessingDescription>
<PostProcessingValues>
<PostProcessingValue>
<PostProcessingValueID>3cc78589-8071-473c-83f5-388ffa2cbfaa</PostProcessingValueID>
<PostProcessingValueName>брикетом</PostProcessingValueName>
</PostProcessingValue>
<PostProcessingValue>
<PostProcessingValueID>0681f22c-ced0-4e7a-91f5-36c6c7d191bc</PostProcessingValueID>
<PostProcessingValueName>намотка на тубу</PostProcessingValueName>
</PostProcessingValue>
<PostProcessingValue>
<PostProcessingValueID>2377959d-be97-4bec-9892-cc683dc267b3</PostProcessingValueID>
<PostProcessingValueName>в рулон</PostProcessingValueName>
</PostProcessingValue>
</PostProcessingValues>
</PostProcessing>
</PostProcessings>
</Material>