MVC Framework — манипулирование DOM на стороне сервера

Я создаю инфраструктуру MVC и ищу нативные решения/фреймворки/библиотеки тегов, которые можно использовать или полностью заменить мою инфраструктуру.

Меня конкретно интересуют следующие функции:

  • манипуляции с DOM на стороне сервера
  • события на стороне сервера (перезагрузка страницы, отправка формы, вставка узла и т. д.)
  • обход дерева DOM с помощью селекторов css
  • проверка вложенности html-узлов
  • проверка разрешенных атрибутов узлов html
  • поддержка библиотек тегов / пользовательских элементов управления

Почти то же, что вы получаете с JavaScript, но на стороне сервера и с некоторыми небольшими дополнениями.

Подойдет любое решение (даже частичное), подойдет любой язык, любые указатели приветствуются (даже из клиентских языков, если можно проверить исходный код). Работа с искаженным html не является обязательным условием. Вывод корректной разметки — большой плюс.


Пожалуйста, предложите практические решения, указав обсуждаемый язык/фреймворк и, если возможно, какие функции он предоставляет.


person Marco Luglio    schedule 04.02.2009    source источник


Ответы (6)


Если вы загрузите свою страницу в анализатор DOM, вы сможете изменить ее оттуда. Тогда вывод его в выходной буфер кажется тривиальным.

Но вам нужно будет хранить весь документ в памяти, что повлияет на производительность.

person jishi    schedule 04.02.2009
comment
Именно такой подход я использовал при написании своего php-фреймворка. Однако это решение требует от меня ручного кодирования системы событий и системы выбора. Сделать голое решение для них не так сложно, но оптимизировать его — проблема. Знакомы ли вы с какими-либо другими манипуляторами DOM? - person Marco Luglio; 05.02.2009

Вы проверили aptana jaxer?

person Community    schedule 19.02.2009
comment
+1 за законный ответ на вопрос. Хоть и немного по-спартански. Видите ли, @the_drow, вместо того, чтобы обсуждать проблему, некоторые люди предпочитают анонимно набрасываться, тем самым избегая всех этих беспорядочных объяснений своих мыслей и действий. Некоторые люди думают, что они просто слишком заняты, чтобы объяснять то, что им кажется очевидным. - person Richard B; 08.06.2009

Итак, в jQuery реализован своего рода API селекторов, думаю, я могу взглянуть на их исходный код. Кроме того, в PHP есть поддержка XPath, это тоже может помочь.

person Marco Luglio    schedule 18.02.2009

Нашел синтаксический анализатор php html dom, который также реализует некоторые селекторы html здесь: http://simplehtmldom.sourceforge.net

person Marco Luglio    schedule 01.07.2009

Fizzler использует пакет HTMLAgility и добавляет на стороне сервера queryselectorall для выбора CSS: http://code.google.com/p/fizzler/

person Bless Yahu    schedule 16.07.2010

Возможно, вы ищете ItsNat

person jmarranz    schedule 18.01.2011