Потому что то, что вы описываете это другой подход к проблеме если таковая существует, для меня проблема была в том что вход — это XML а процессинг основан на XSLT… решение соответствующее. Повторюсь также что это XSLT 2 ни одной реализации Javascript движка со встроенным XSLT 2 либо возможностью его как либо прикрутить я не знаю.
опустим то для чего он изначально был предназначен (Javascript изначально тоже был предназначен для того чтобы приделывать всякие рюшечки на вебстраницу, а не для написание фреймворков и веб — приложений), XML — это входные данные и ничего больше не лучше и не хуже других типов данных.
нет не кажется, XSLT это не шаблонизатор а полноценный функциональный язык программирования, я могу представить где ваше предложение себя оправдает, но в данном конкретном случае ситуация иная.
E4X is implemented in SpiderMonkey (Gecko's Javascript engine) since version 1.6.0[1] and in Rhino (Mozilla's other Javascript engine written in Java instead of C) since version 1.6R1. Осталось только найти как его включить. А проблема со startElement(...) не в том чтобы Javascript научить работать с XML а в том чтобы обеспечить двухстороннее конвертирование объектов между рантаймом Rhino и XSLT.
1. XSLT2
2. Bean scripting Framework это совсем не тоже самое что полноценный Javascript движок.