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

本文关键字:存在 文件 保存 转换 xslt 输出 | 更新日期: 2023-09-27 17:59:05

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

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

这应该有效:

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

使用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应用程序的根目录中)

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

关于