Если вы не хотите учитывать такие вещи, как знакомство с разработчиком, я бы сказал, что почти всегда, если у вас есть XSLT 2.0 или, по крайней мере, EXSLT, поскольку XSLT 1.0 довольно ограничивающий (если вам нужны только структурные преобразования, достаточно 1.0, но если вам нужно что-то сделать с контентом, вы хотите держаться подальше от 1.0). XSLT специально разработан для преобразования XML, и я нашел его намного лучше для этой задачи, чем библиотеки XML на языках программирования общего назначения.
Конечно, это все при условии, что вам нужно только преобразовать входной XML в какую-то другую форму. В реальном мире требования меняются, и внезапно вам приходится не только преобразовывать XML, но и выполнять некоторые операции на его основе. И хотя XSLT является полным по Тьюрингу, на самом деле это не язык программирования общего назначения, поэтому для будущего можно будет использовать другой язык. Тем не менее, я бы, вероятно, реализовал первую версию в XSLT, потому что я нахожу ее быстрее и проще для понимания, и только если позднее XSLT окажется неподходящим, я рассмотрю что-то еще.