Кажется, что стандартом дефакто является XSLT.Лично я ненавижу XSLT за его многословие и считаю, что его трудно читать и поддерживать.
Я очень предпочитаю freemarker, и я обнаружил, что разработчикам java гораздо проще подобрать и поддерживать.Freemarker имеет встроенную поддержку XML , включая xpath .Вы можете создавать пользовательские теги freemarker для общих задач, чтобы еще больше улучшить повторное использование и удобочитаемость, а также уменьшить детализацию.
Одна из вещей, которые мне нравятся в freemarker, это то, что вы можете внедрять java-помощники и сервисы в контекст freemarker и вызывать их.методы в ваших шаблонах.Эти методы могут поразить вашу базу данных, например.Чтобы сделать это в XSLT, мы использовали для преобразования таблиц БД в XML, а затем перебирали узлы XML в шаблоне, который был неэффективным или кратким.
Таким образом, шаблон свободного маркера, вероятно, будет составлять 1/3 отстроки кода как шаблон XSLT делают то же самоеПоскольку вы можете использовать java-помощники, вы можете оптимизировать поиск с помощью хэш-карт и наборов и т. Д. В результате вы получите более производительные шаблоны, которые более удобочитаемы и просты в обслуживании.
Один из недостатков поддержки XML в Freemarker заключается в том, что оноснован на DOM.Поэтому, если вы обрабатываете огромные XML-документы, вы получите OutOfMemoryErrors.XSLT, с другой стороны, основан на SAX.