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