powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / XslTransform.Transform не выводит <?xml version="1.0" encoding="utf-8"?>
2 сообщений из 2, страница 1 из 1
XslTransform.Transform не выводит <?xml version="1.0" encoding="utf-8"?>
    #32927815
Dilation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста.

Задача следующая - вывести данные из DataSet в xml, так чтобы его можно было открыть в Excel. Делаю преобразование с помощью XslTransform.Transform.

Вот файл XSLTFile1.xslt:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<xsl:template match="/">
<xsl:processing-instruction name="mso-application">
<xsl:text>progid="Excel.Sheet"</xsl:text>
</xsl:processing-instruction>
<Workbook>
<Styles>
................. (и т.д. - без ошибок - 100%),

xml файл получаю просто как DataSet.GetXml().

код на c# примерно такой:

XmlTextWriter xmlTW = new XmlTextWriter(fName, null);
XmlDocument xslDoc = new XmlDocument();
string dir = System.Windows.Forms.Application.StartupPath;
xslDoc.Load(dir+"\\XSLTFile1.xslt");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(ds.GetXml());
XslTransform xslt = new XslTransform();
XmlUrlResolver xmlUrlResolver = new XmlUrlResolver();
xslt.Load(xslDoc, xmlUrlResolver, new System.Security.Policy.Evidence());
xmlTW.Formatting = Formatting.Indented;
xmlTW.Indentation = 4;
xslt.Transform(xmlDoc, null, xmlTW, xmlUrlResolver);
xmlTW.Close();

В результате получается файл с именем fName, в котором все нормально, но самого нужного - <?xml version="1.0" encoding="utf-8"?> в первой строке - нет!! без этого элемента Excel пытается все запихнуть в одну ячейку, и естественно выдает ошибку. Дописываю руками в текстовом редакторе - все работает, нормально открывает, то есть весь остальной код правильный.
Что я делаю не так?
/*Можно конечно дописать принудительно в файл эту строку, но это уже на заплатку какую-то похоже...*/
...
Рейтинг: 0 / 0
XslTransform.Transform не выводит <?xml version="1.0" encoding="utf-8"?>
    #32928735
Фотография greenapple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xDoc.AppendChild(xDoc.CreateXmlDeclaration("1.0", "utf-8", ""));
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / XslTransform.Transform не выводит <?xml version="1.0" encoding="utf-8"?>
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]