Я использовал Template :: Toolkit для XML. Я также использовал более програматический подход XML :: Writer .
Если у вас есть фиксированная структура XML, которую вы просто заполняете данными, и у вас уже есть Template :: Toolkit, то использование шаблона TT для вашего XML имеет большой смысл; использование шаблона в этом случае, вероятно, значительно облегчит правильное соответствие желаемой схеме. Но, конечно, будьте осторожны с правильным экранированием и кодированием всего для XML, а не для HTML.
Если вы программно конвертируете произвольные структурированные данные в XML, то XML :: Writer, вероятно, будет лучшим выбором: если у вас нет фиксированной схемы, то нет ничего для шаблона.
XML часто используется как переносимый формат сериализации данных. Архетипический пример начинается с некоторой вложенной структуры данных HoHoA и преобразует ее в XML через общий интерфейс сериализации. В системе сериализации просто есть структура данных, поэтому нет структуры для шаблона.
Кроме того, люди склонны использовать первую технику, которую они изучают, даже когда есть лучшие способы. Я предполагаю, что большинство людей сначала сталкиваются с XML для сериализации данных (а не для структурированного хранения документов), поэтому они продолжают использовать методы сериализации, даже когда шаблонный подход будет чище.
Все это (даже первый абзац) в равной степени относится и к JSON (и даже к HTML).