我有一个“book.xml”和“book.xslt”输出已在文本模式下设置,我不想通过浏览器加载文本文件,因为它太重了我需要一些代码来保存输出硬盘中的文本文件。我如何通过c#实现这种转换?
答案 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
课程的更多信息:
答案 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
问候