Альтернатива XSLT? - PullRequest
       15

Альтернатива XSLT?

3 голосов
/ 18 октября 2011

в моем проекте у меня есть huuuuge XSLT, используемый для преобразования некоторых файлов XML в HTML. Проблема в том, что этот файл растет день ото дня, его трудно читать, отлаживать и тестировать. Поэтому я думал о переносе всего процесса синтаксического анализа на Java.

Как вы думаете, это хорошая идея? В случае, если библиотеки для анализа XML и генерирования HTML (XML) вы предлагаете? спектакли будут лучше или хуже?

Если это не хорошая идея, какая-нибудь альтернативная идея?

Спасибо

Randomize

Ответы [ 3 ]

2 голосов
/ 18 октября 2011

У меня когда-то был клиент с похожей проблемой - тысячи строк XSLT, постоянно растущих.Я потратил час, читая его с растущей недоверием, а затем переписал его в 20 строк XSLT.

Рефакторинг - это часто хорошая идея, и чем хуже код, тем выгоднее рефакторинг.Но нет никаких оснований полагать, что только из-за того, что код плохой и нуждается в рефакторинге, вам нужно перейти на другой язык программирования.XST на самом деле очень хорошо справляется с разнообразием и сложностью, если вы знаете, как правильно его использовать.

Возможно, код является накоплением специальной обработки особых случаев, и каждый новый обнаруженный особый случай приводит к появлению новых правил.добавляется.Это сложная проблема для любого языка, но XSLT может справиться с этим лучше, чем большинство, если вы все время прикладываете усилия к поиску абстрактных общих правил, которые охватывают все специальные правила, поэтому вам нужно только кодировать специальные правила какисключения.

2 голосов
/ 18 октября 2011

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

1 голос
/ 18 октября 2011

Взгляните на CDuce - это строго типизированный, статически скомпилированный язык обработки XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...