![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Izvrat |
|
|||
|
Unregistered |
уж не знаю уместна ли ЗДЕСЬ эта тема....
Вобщем если есть кто, кто действительно может помоч в НАПИСАНИИ СВОЕГО движка DOM XML. Ссылок на документацию мне давали достаточно, но все дело в том что интрефесы модели ДОМ принципаилно не дают никаких советов, что касаестья реального хранения данных. Это они оставляют на совесть разработчиков. Просьба также не ставить мнея на путь истинный, в виде ссылок на готовые реализации. Главный вопрос который меня интересует - где и как ЛУЧШЕ (логичнее) хранить объекты XML дерева, или ссылки на них? Т.е. ваше мнение по этому поводу. Я встречал пока 2 варианта: - создавать нестандартную переменную - массив в интерфейсе (т.е. в childNodes эелементов) NodeList, с сылками на обекты, недостаток - это не сильно соответвуют спецификации. - свойство childNodes являеться массывос ссылок на дочерние элементы, а класс NodeList вообще не реализован! - в голове витает третий вариант - хранить дерево гдето еще, ну скажем в DOMImplementation или Document, вобщем если кто имел подобны опыт, или просто чего знает, рад буду выслушать |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: нет Всего: 73 |
Дубляж.
2Moderators, убейте тему. -------------------- Теперь при чем :P |
|||
|
||||
| Izvrat |
|
|||
|
Unregistered |
плизз!, убейте в другом месте (в Х-технологиях) там мне всеравно ничего не ответят ....
|
|||
|
||||
| Sardar |
|
||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 2 Всего: 317 |
Зачем? Ты в PHP5 заглядывал или всё на обум?
Да, в спецификации только интерфейсы и поведение, в этом сила, разработчика не ограничивают никак.
В зависимости от того что ты потом хочешь делать. Если реализуетсья XPath, то помимо основного дерава с данными потребуються куча таблиц и сбалансированных деревьев, что бы выполнять быстрый поиск. Посмотри как в xerces и ему подобных реализованно, http://xml.apache.org/ -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||
|
|||||||
| Guest |
|
||||||
|
Unregistered |
не везде стоит пхп5 во первых, и во вторых, ну хочу я свой написать! люблю я пользоваться своими классами.!, что нельзя?
и я об этом же, вопрос в том чтобы вы мне посоветовали, т.е. как бы вы поступили на моем месте?
Вот что я хочу: хочу удобный генератор ХТМЛ страничек для интерйесов веб приложений. Парсер XML, Path может и не помешают, но это не приоритетная задача. Насчет мнигих там доплнительных деревьев, то я так и предпологал (ну хотябы массив ID => Указатель_На_Узел), воспрос в том где бы эти самые данные размистить в каком месте модели, так чтоб W3C спокойно ночью спали И Вот моя главная задача: возможность легко и эффктивно дополнять классы ДОМ производными(да и прочими) классми для реальных нужд интерфейсов веб приложений (но на пример Element : HTMLTableElement : DBListView , Element : HTMLTableElement : DBFormView ) |
||||||
|
|||||||
| Sardar |
|
||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 2 Всего: 317 |
Xм, темперамент
Читаешь спецификацию DOM(1,2,3 выбери любую), создаёшь интерфейсы по IDL что они предоставили, кладёшь в свой DOM.core Затем для каждого интерфейса пишешь имплементацию без оптимизаций, т.е. все узлы, дочернии элементы в списках childNodes, так и строим дерево. Затем смотришь на моменты где тебе нужен быстрый доступ, как например ты уже сказал ранее, индекс ID->узел. Ты не сказал на каком языке писать собираешся Какие наработки уже есть? А то кроме эмоций пока ничего не вижу. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||
|
|||||||
| Guest |
|
||||||
|
Unregistered |
Разве? забыл наверно псправлюсь - на ПХП (желательно чтоб под 4 работало) в приныепе понятно, где так я и собирался.... мне интересна деталь одна только, обязательно ли создавать в классе NodeList (для объектов childNodes) дополнительный массив, типа _сhildArray (во мнеогих реализациях ПХП так и поступали, правда видел одну, где класса NodeList и NodeNamedMap не было, а эелементы типа childNodes были обычными массивами, но чтото такой вариант мне не нравиться?), нелоьзя ли както совместить? типа чтоб работало такое: $a = new Element; $a->childNodes[1]; $a->childNodes->item(); это бы было красиво и удобно, но вроде ПХП не позволяет, получилось лишь $a = new Element; $a->childNodes(1); $a->childNodes->item(); - но этот метод не позволяет красиво хранить дочерние объеткы И ещо вопрос, эти самы вспомогательные массивы и деревья, где их лучше хранить - DOMImplementation, Document или еще где?
та вот на этих дочерних обектах и зпанулся... пака только на стадии
так что показывать особо нечего |
||||||
|
|||||||
| Sardar |
|
||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 2 Всего: 317 |
Ты хоть сам понимаешь как это будет тормозить? Прежде чем писать, подумал, а нужно ли это вообще, т.к. имплементация DOM на ура в PHP5, а те кто ещё на 4 будут юзать DOM XML, т.к. он "нативный"(на C написан)?
В PHP5 представь chilsNodes как обьект NodeList + имплементируй интерфейс ArrayAccess. В итоге сможешь обращаться как к массиву, так и вызывать методы.
Это твои деревья, конечный пользователь ничего о них знать не должен, следовательно храни где угодно. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||
|
|||||||
| Guest |
|
||||||
|
Unregistered |
ну не везде стоит он , ПХП5, и не везде стоит модуль DOM к томуже я говорил, одна из главных целей, использовать мою версию как подложку под мои классы.
спасибо, я так и думал. просту не хотелось "портить" класс нестандартными полями.
да эт я то понял, яж говорю тут негде я не спрашиваю как это можно сделать, вопрос как лучше. Т.е. куда бы это их так подальше запихнуть, чтоб пользователь о них поменьше знал? на ваше мнение. Еще интересно, можно ли сделать поле класса только для чтения както в ПХП4? заменить поле методом, както некрасиво, хотя кажеться по другому не получаеться (например для NodeList::length), может можно ли както запусть функция перед обращением к какому либо методу? наверно я многого хочу?... |
||||||
|
|||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |