Использование анализатора XML для создания кода XHTML на лету - PullRequest
1 голос
/ 15 января 2009

Разработка кода на стороне сервера. Я наконец-то бросил взгляд, пытаясь написать - и затем, конечно, понять - формы или другой HTML-код, в котором текстовые строки (атрибуты) в двойных кавычках должны появляться при открытии теговой строки (разметки). и закрытие правильно; но часто текст javascript внутри апостолов должен создаваться, довольно часто цитируя другой текст (конечно, в кавычках) или создавая вычисленные значения, которые должны быть помещены в зависимую от языка разметку

Это полный беспорядок, путь к слепоте и безумию, и верный способ тратить мое время, пытаясь выяснить, почему последняя ячейка в таблице отображается перед заголовком таблицы - конечно, я пропустил апостроф в строка из 512 символов. После попытки изобрести колесо, создавая некоторый API для управления неуправляемым, я увидел это возможное решение: ну, черт возьми, xhtml - это, на самом деле, XML. Так почему бы не использовать синтаксический анализатор XMl (на сервере) для создания с нуля фрагмента документа, заполнить его, добавив дочерние узлы по моей воле, а затем заставить анализатор сериализовать все дерево фрагментов, заботясь о таких глупых деталях, как открывающий и закрывающий тег, добавляя апострофы и все остальные подобные вещи? Использование его только в бэк-офисе должно поддерживать низкую рабочую нагрузку на сервер - лишь немногие люди на этой планете могут проходить проверку подлинности и получать доступ к серьезным материалам, поэтому создание и выпуск объектов остаются приемлемыми.

Мой вопрос: это, на ваш взгляд, хорошее решение проблемы, упомянутой выше? Может быть, есть более простые решения, которыми я пренебрегаю? Есть какая-то проблема, которую я не видел? Это какое-то излишество? Ироничные "поздравляю, ты наконец-то получил это" принимаются.

Спасибо!

Ответы [ 4 ]

1 голос
/ 15 января 2009

Динамическое построение DOM на стороне сервера и последующий вывод полученного HTML (или XHTML) - это то, что делают большинство серьезных серверных технологий. Возможно, они не делают этого с необработанным XML - возможно, у них есть своя собственная структура классов / API, которую они используют для этого, но это основная парадигма, которой они следуют.

Что касается "поздравляю, ты наконец-то понял", я бы сказал, что ты на правильном пути. Вы не упомянули конкретную технологию, но я предполагаю, что вы возились с созданием необработанного HTML с использованием базового PHP или Perl. Поздравляю, вы сделали то, что делают остальные, в конце концов: интересно, есть ли лучший способ. Я бы посоветовал вам взглянуть на некоторые из серьезных каркасов веб-приложений, таких как ASP.NET MVC, Ruby on Rails, Struts или Twisted.

0 голосов
/ 17 января 2009

Это именно то, для чего был изобретен XSLT: преобразование XML-документов в XML-документы без каких-либо ошибок. Как только вы понимаете XSLT (и, к сожалению, это требует определенных действий), проблемы, которые вас раздражают, теперь полностью исчезают из вашей жизни.

0 голосов
/ 15 января 2009

Я думаю, что ироничное «поздравляю, ты наконец-то понял» - самый подходящий ответ здесь. XHTML - это подмножество XML, поэтому любые инструменты XML смогут сделать это для вас правильно и позволят вам сосредоточиться на контенте, а не на формате контента.

По сути, существует больше анализаторов XML и моделей документов, чем вы можете потрясти. Если у вас нет особой потребности в производительности, а создание пользовательских XML-строк имеет больше смысла, лучше использовать одну из этих библиотек.

0 голосов
/ 15 января 2009

Да, я использую связанные с XML классы фреймворка для анализа XHTML и создания XHTML.

...