Привет!
С XML вроде разобрался. Но мы снова не ищем легких путей.
Нужно как-то научиться создавать, использовать и редактировать такую штуку. Предположим, разделы сайта. Похоже на вложенные директории. Карта.
корень
_часть1
__раздел1
___раздел1.1
__раздел2
_часть2
__раздел1
Смысл в том, что каждому(ой) разделу (части) приписывается некий уникальный UID, который потом указывается в свойствах объектов, "содержащихся" в этих разделах. В соответствии с этой картой объекты обрабатываются.
Вопросы.
1. В чем хранить базу? SQL нельзя. Предположим, типа-XML.
_
__
___
____
___
__
__
___
__
2. Как сделать навигацию по дереву? Т.е. как, например, получить текстом то-то вроде:
-------------
1
_sfdfg
__jkyut
__fght
-------------
3. Как произвольно менять порядок следования одноранговых записей, чтобы они шли не по алфавиту и не в порядке нахождения в XML?
4. Как делать наследование параметров, чтобы неуказанный параметр брался от чуть более близкого к корню элемента? Например, style.
5. Как объединять разные объекты в группы?
Какая-то муть получилась. В общем, помогите советами, как организовать дерево произвольной степени вложенности.
Проблема в том, что одна часть сайта можеть быть очень простой, можно html просто в корень покидать. Вторая же нуждается во влженных папках, при этом некоторые html неплохо бы группировать по смыслу, а не расположению.
При этом одна часть не должна никак перекликаться с другой. То есть два дизайна, две карты и т.д. Но не писать же два движка. Нужно как-то в одну базу всё. И общая статистика, модерация.
Понимаю, что непростая штука. Формат хранения, IMHO, неплохой. Но как организовать именно работу с объектами, указывать наследственность, т.д. что-то придумать не могу.
В общем, рад любой помощи. Если это тупо - подскажите пару красивых идей. Желательно опять-таки без чужих или сложных модулей.
Отмазки: SQL низя. Да, делать нечего, пишу движок сайта. Для себя. Чтобы научиться. Сайт не коммерческий и делается для души.
add: Один из самых мощных вопросов - как это хранить в скрипте, забивать ли в массивы, хэши и т.д. и какии методами обрабатывать. Поэтому-то это в Perl я и повесил.