Передача узла DOM Document в качестве параметра саксонскому преобразованию должна работать (долгое время DOM не самое эффективное представление дерева, но оно должно работать).Так следует передать DOMSource, который оборачивает DOM Document.Я обычно начинаю с выполнения xsl: copy-of select = "$ doc", и вы, кажется, сделали это и подтвердили, что значение передается правильно.Если вы ничего не получаете в ответ на выбор XPath в документе, это обычно означает, что выражения XPath неверны.Наиболее распространенные причины - забыть о корневом (документном) узле и забыть о пространствах имен.Но я боюсь, что в коде, который вы нам показали, нет никаких свидетельств таких ошибок - при условии, что DOM отражает XML, который вы показали в своем сообщении.
В вашем сообщении предполагается, что вы создали документ DOM программным способом.Возможно, вы создали DOM, который Saxon по какой-то причине не может обработать: интерфейсы DOM не очень надежны, и иногда возникают трудности, когда люди используют реализацию DOM, которая не была протестирована с Saxon.
Вы также можете протестировать свою таблицу стилей, запустив ее из командной строки - вы можете указать значение параметра $ dictionary с помощью + dictionary = dict.xml (начальный «+» заставляет ее распознаваться как имя файла, который требуетсябыть проанализированным).