Здравствуйте, glina, Вы писали:
G>кодировка не появилась
OK. Ты вывел результат преобразования в дерево. Но в самом дереве кодировка не нужна, там всегда используется UTF-16. Кодировка нужна тогда, когда ты выводишь это дело в байтовый поток.
Когда ты вызываешь метод save, он анализирует дерево и ищет в нем сигнатуру XML, замаскированную под инструкцию обработки (processing instruction) вида
<?xml version="1.0" encoding="UTF-1251"?>, перед корневым элементом.
Если там указана кодировка, он принимает ее к исполнению и пишет байтовый поток в этой кодировке. Если узел инстукции обработки не найден или в нем нет указания о кодировке, он берет умолчание. В любом случае сигнатура XML попадает в вывод в том же виде.
Эту инструкцию обработки туда несложно добавить. Как это сделать, ищи на сайте.
Если бы ты выводил результат преобрабования не в дерево, а сразу в IStream, XSLT-процессор принял бы к исполнению инструкцию <xsl:output>.
Да здравствует ИМХО!