如何使用C#在xslt转换中传递和获取基于字符串的xml数据?

如何使用C#在xslt转换中传递和获取基于字符串的xml数据?,c#,xml,c#-4.0,C#,Xml,C# 4.0,我想使用xslt将一个xml文件转换为另一个xml文件。在这里,我可以将输入文档传递到XPathDocument,还可以通过将outfile传递到XmlTextWriter将输出文件保存在磁盘中 但现在我的问题是。。。我的输入是字符串格式的,我还希望输出为字符串。我希望传递包含xml数据的字符串,而不是传递输入文件的位置 因此,我必须以某种方式将string对象传递到XPathDocDocument中,并将结果xml文件作为字符串获取 XPathDocument xpat

我想使用xslt将一个xml文件转换为另一个xml文件。在这里,我可以将输入文档传递到XPathDocument,还可以通过将outfile传递到XmlTextWriter将输出文件保存在磁盘中

但现在我的问题是。。。我的输入是字符串格式的,我还希望输出为字符串。我希望传递包含xml数据的字符串,而不是传递输入文件的位置

因此,我必须以某种方式将string对象传递到XPathDocDocument中,并将结果xml文件作为字符串获取

            XPathDocument xpathDoc = new XPathDocument("C:\\InputXml.xml");
            XslCompiledTransform xslt = new XslCompiledTransform();

            string xsltFile = "C:\\conversion.xslt";
            xslt.Load(xsltFile);

            string outputFile = "C:\\myHtml.html";
            XmlTextWriter writer = new XmlTextWriter(outputFile, null);
            xslt.Transform(xpathDoc, null, writer);
            writer.Close();

请引导我摆脱这个问题…

XPathDocument接受
TextReader
。您可以将流作为
新XPathDocument(新StringReader(xmlstring))
提供。类似地,
XmlTextWriter
接受
TextWriter
。因此,您可以传递一个
StringWriter

--编辑--

var sw = new StringWriter();
XmlTextWriter writer = new XmlTextWriter(sw);
xslt.Transform(xpathDoc, null, writer);
var str= sw.ToString();

XPathDocument接受
TextReader
。您可以将流作为
新XPathDocument(新StringReader(xmlstring))
提供。类似地,
XmlTextWriter
接受
TextWriter
。因此,您可以传递一个
StringWriter

--编辑--

var sw = new StringWriter();
XmlTextWriter writer = new XmlTextWriter(sw);
xslt.Transform(xpathDoc, null, writer);
var str= sw.ToString();
试试这个

XslTransform  xTrans = new XslTransform();
xTrans.Load(nodeXsltPath);    //xsl file path
XmlDocument input= new XmlDocument();
XmlDocument output= new XmlDocument();
input.LoadXml(xmlString); /* Xml string to be loaaded */                        
output.Load(xTrans.Transform(input,null,new XmlUrlResolver()));
output.Save(filePathtoSave);
试试这个

XslTransform  xTrans = new XslTransform();
xTrans.Load(nodeXsltPath);    //xsl file path
XmlDocument input= new XmlDocument();
XmlDocument output= new XmlDocument();
input.LoadXml(xmlString); /* Xml string to be loaaded */                        
output.Load(xTrans.Transform(input,null,new XmlUrlResolver()));
output.Save(filePathtoSave);