|
|
|
ActivePerl: Посоветуйте модуль для работы с XML
|
|||
|---|---|---|---|
|
#18+
Есть примерно такой XML-файл, описывающий структуру базы данных (таблицы, поля, связи): Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. По этой структуре мне нужно в скрипте загрузить данные локально (закешировать данные). Перед этим необходимо преобразовать XML в структуру. Как это делает XML::Simple меня устраивает почти всем, за исключеним одного момента — структура считывается в хеш. А мне важно сохранить порядок записей в коллекциях Tables и Fields. Опция ForceArray тут не помогает, она индексирует не так, как мне надо (мне нужно, чтобы в Fields был массив Field, а опция делает внутри Fields массив из одного элемента Field, внутри которого остальная структура). ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2012, 15:57:39 |
|
||
|
ActivePerl: Посоветуйте модуль для работы с XML
|
|||
|---|---|---|---|
|
#18+
Наткнулся на XML::Mini::Document. При использовании метода toHash() делает практически то, что мне нужно. В принципе вопрос решен, но может есть более подходящий модуль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2012, 16:15:17 |
|
||
|
ActivePerl: Посоветуйте модуль для работы с XML
|
|||
|---|---|---|---|
|
#18+
Все же вопросы остались. XML::Mini::Document слишком умный и если в Fields есть только один вложенный элемент Field, он его не делает массивом. Можно ли вручную указать ноды, для которых всегда нужно создавать массив? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2012, 18:50:01 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=131&tid=1464557]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 361ms |

| 0 / 0 |
