如何为XSLT.Load和XSLT.Transform方法使用字符串而不是文件?

时间:2015-03-27 12:45:01

标签: c# .net xslt

我使用http://www.thescarms.com/dotnet/XSLT.aspx使用XSLT模板将逗号分隔数据(CSV)转换为XML。

它使用了foll。 2行.NET代码:

 XSLT.Load(mstrInputXSLTFile, resolver);
 XSLT.Transform(mstrInputCSVFile, mstrOutputXMLFile, resolver);

我正在寻找一种方法,我可以使用字符串内容(XSLT,CSV文件的内容)代替上述两种方法中的文件。任何帮助都是有用的。

我计划在WCF webservice中实现这个逻辑,它将接收csv字符串。如果没有解决方法,那么我将不得不根据收到的csv和xsl的值创建临时文件。处理服务器上csv到xml的转换,并将xml输出返回给客户端。然后删除上面创建的文件。

2 个答案:

答案 0 :(得分:1)

如果您想从字符串加载输入,请在字符串上XmlReader上创建StringReader,例如

XslCompiledTransform proc = new XslCompiledTransform();

using (StringReader sr = new StringReader(stringVar))
{
  using (XmlReader xr = XmlReader.Create(sr))
  {
    proc.Load(xr);
  }
}

答案 1 :(得分:0)

XslTransform中没有合适的方法可以满足您的需求。

但是,您可以编写自己的extensions methods(我称之为Parse..),它将内容作为字符串,在临时目录中创建文件,并通过合适的方法加载/转换它们。