将xslt输出转换保存在文件中

时间:2011-06-13 11:43:41

标签: c# .net xml xslt

我有一个“book.xml”和“book.xslt”输出已在文本模式下设置,我不想通过浏览器加载文本文件,因为它太重了我需要一些代码来保存输出硬盘中的文本文件。我如何通过c#实现这种转换?

3 个答案:

答案 0 :(得分:4)

这应该有效:

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 :(得分:1)

使用System.Xml.Xsl.XslCompiledTransform类。

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

(注意:这假设所有文档都存储在Web应用程序的根目录中)

答案 2 :(得分:0)

通过像这样使用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

问候