сохранить преобразование вывода xslt в файл - PullRequest
2 голосов
/ 13 июня 2011

У меня есть «book.xml» и «book.xslt», вывод был установлен в текстовом режиме, я не хочу загружать текстовый файл браузером, потому что он настолько тяжелый, что мне нужен код для сохранения выводатекстовый файл на жестком диске.Как я могу реализовать этот вид преобразования с помощью C #?

Ответы [ 3 ]

4 голосов
/ 13 июня 2011

Это должно работать:

XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(@"c:\book.xslt");
xslt.Transform(@"c:\book.xml", @"c:\output.txt");

Очевидно, что ваши пути необходимо будет обновить в соответствии с вашим конкретным сценарием, например:

XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(Server.MapPath("~/book.xslt"));
xslt.Transform(Server.MapPath("~/book.xml"), Server.MapPath("~/output.txt") );

Это прочитает ваш XSL-файл из корня сайта и преобразует /book.xml и сохранит его в /output.txt.

Подробнее о классе System.Xml.Xsl.XslCompiledTransform можно узнать здесь:

System.Xml.Xsl.XslCompiledTransform

1 голос
/ 13 июня 2011

Используйте класс System.Xml.Xsl.XslCompiledTransform.

XslCompiledTransform transform = new XslCompiledTransform();
transform.Load(Server.MapPath("~/book.xslt"));
transform.Transform(Server.MapPath("~/book.xml"), Server.MapPath("~/output.xml"));

(Примечание: предполагается, что все документы хранятся в корне веб-приложения)

0 голосов
/ 13 июня 2011

Используя xmwwriter и xdocument, вот так:

using System.Data;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;

public void xmltest(string xmlFilePath, string xslFilePath, string outFilePath) 
{
    var doc = new XPathDocument(xmlFilePath);
    var writer = XmlWriter.Create(outFilePath);
    var transform = new XslCompiledTransform();

    // The following two lines are only needed if you need scripting.
    // Because of security considerations read up on that topic on MSDN first.
    var settings = new XsltSettings();
    settings.EnableScript = true;

    transform.Load(xslFilePath,settings,null);

    transform.Transform(doc, writer);

}

Больше информации здесь: http://msdn.microsoft.com/en-us/library/14689742.aspx

regards

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...