Включение файла XSLT в исполняемый файл - PullRequest
5 голосов
/ 15 сентября 2010

Я пытаюсь создать исполняемый файл, который применяет XSLT-преобразования к большому количеству XML-файлов.Теперь моя проблема заключается в том, что я хотел бы включить / обратиться к файлу XSLT, хранящемуся в моем решении C # VS 2010, чтобы при перепаковке этого файла для другой машины мне не приходилось копировать файлы XSLT.Возможно ли это?

string xslFile = "C:\template.xslt";
string xmlFile = "C:\\file00324234.xml";
string htmlFile = "C:\\output.htm";

XslCompiledTransform transform = new XslCompiledTransform();
transform.Load(xslFile);
transform.Transform(xmlFile, htmlFile);

1 Ответ

12 голосов
/ 15 сентября 2010

Вы можете включить XSLT как Embedded Resource в свою сборку, как описано здесь:

Как встроить файл XSLT в .NETпроект для включения в выходной файл .exe?

После встраивания вы можете использовать преобразование следующим образом:

using(Stream stream = Assembly.GetExecutingAssembly()
    .GetManifestResourceStream("YourAssemblyName.filename.xslt"))
{
    using (XmlReader reader = XmlReader.Create(stream))
    {
        XslCompiledTransform transform = new XslCompiledTransform ();
        transform.Load(reader);
        // use the XslTransform object
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...